Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Blitz3D > 3D-программирование

3D-программирование Вопросы, касающиеся программирования 3D мира

Ответ
 
Опции темы
Старый 25.07.2007, 22:03   #1
DMX
Оператор ЭВМ
 
Регистрация: 13.11.2006
Сообщений: 39
Написано 0 полезных сообщений
(для 0 пользователей)
CreateTexture

Помогите сделать так чтобы чёрный цвет был прозрачен


Graphics3D 800,600,32,2
SetBuffer BackBuffer()
camera = CreateCamera()
CameraClsColor camera,0,64,128
cube = CreateCube()
PositionEntity cube,0,-1,5
light = CreateLight()

tex = CreateTexture(64, 64)
SetBuffer TextureBuffer(tex)
Color 150, 150, 150
Rect 0, 0, 64, 64, 0
EntityTexture cube, tex
ScaleTexture tex, 0.2, 0.2
SetBuffer BackBuffer()


While Not KeyHit(1)

TurnEntity cube,1,0,-0.2

RenderWorld
UpdateWorld
Flip
Wend
End
(Offline)
 
Ответить с цитированием
Старый 26.07.2007, 13:26   #2
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Re: CreateTexture

LockBuffer
UnlockBuffer
WritePixel
ReadPixel
Вот комманды которые тебе нужны, в справке есть примеры по работе с ними.
(Offline)
 
Ответить с цитированием
Старый 26.07.2007, 13:39   #3
Platon
Знающий
 
Регистрация: 04.08.2006
Адрес: Россия
Сообщений: 297
Написано 39 полезных сообщений
(для 70 пользователей)
Re: CreateTexture

Для загружаемых текстур просто указывай флаг 4 при загрузке, для создаваемых маску надо делать через альфаканал, вот тебе функция
Function MaskTexture(Texture, Red, Green, Blue)
	Local MaskColor = (Red Shl 16) Or (Green Shl 8) Or Blue
	Local MaskSizeX = TextureWidth(Texture)
	Local MaskSizeY = TextureHeight(Texture)
	Local MaskBuffer = TextureBuffer(Texture)
	LockBuffer(MaskBuffer)
	For x = 0 To MaskSizeX
		For y = 0 To MaskSizeY
			Pixel = ReadPixelFast(x, y, MaskBuffer) And $00FFFFFF
			If (Pixel = MaskColor) Then
				WritePixelFast(x, y, Pixel, MaskBuffer)
			Else
				WritePixelFast(x, y, Pixel Or $FF000000, MaskBuffer)
			EndIf
		Next
	Next
	UnlockBuffer(MaskBuffer)
End Function
Текстуре укажи флаг 4 или 2, и с помощью этой функции установи маску на нужный цвет.

Зы
В принципе можешь сразу указывать прозрачность, во время рисования в текстуру, но так более универсально.
(Offline)
 
Ответить с цитированием
Старый 26.07.2007, 19:21   #4
DMX
Оператор ЭВМ
 
Регистрация: 13.11.2006
Сообщений: 39
Написано 0 полезных сообщений
(для 0 пользователей)
Re: CreateTexture

Спасибо конечно огромное. Но нельзя ли поконкретней специально для этого кода.
(Offline)
 
Ответить с цитированием
Старый 26.07.2007, 20:05   #5
Horror
Бывалый
 
Регистрация: 09.09.2006
Сообщений: 656
Написано 54 полезных сообщений
(для 110 пользователей)
Re: CreateTexture

Ну типо ?подозреваю что так :
tex = CreateTexture(64, 64)
SetBuffer TextureBuffer(tex)
Color 150, 150, 150
Rect 0, 0, 64, 64, 0
SetBuffer BackBuffer()

MaskTexture(Tex, 0, 0, 0) ;0,0,0 -черный цвет

EntityTexture cube, tex

(Offline)
 
Ответить с цитированием
Старый 26.07.2007, 22:00   #6
DMX
Оператор ЭВМ
 
Регистрация: 13.11.2006
Сообщений: 39
Написано 0 полезных сообщений
(для 0 пользователей)
Re: CreateTexture

Неработает
(Offline)
 
Ответить с цитированием
Старый 26.07.2007, 22:50   #7
Platon
Знающий
 
Регистрация: 04.08.2006
Адрес: Россия
Сообщений: 297
Написано 39 полезных сообщений
(для 70 пользователей)
Re: CreateTexture

Ты читать умеешь? Я же написал - текстуре ставить флаг 4 или 2! Третий параметр в CreateTexture().
(Offline)
 
Ответить с цитированием
Старый 27.07.2007, 13:37   #8
DMX
Оператор ЭВМ
 
Регистрация: 13.11.2006
Сообщений: 39
Написано 0 полезных сообщений
(для 0 пользователей)
Re: CreateTexture

OK всё работает огромное спасибо
(Offline)
 
Ответить с цитированием
Старый 27.07.2007, 20:09   #9
DMX
Оператор ЭВМ
 
Регистрация: 13.11.2006
Сообщений: 39
Написано 0 полезных сообщений
(для 0 пользователей)
Re: CreateTexture

Работает но с библиотекой винблитс3д не хочет. Не льзяли как нибудь по другому реализовать.
(Offline)
 
Ответить с цитированием
Старый 27.07.2007, 23:42   #10
Platon
Знающий
 
Регистрация: 04.08.2006
Адрес: Россия
Сообщений: 297
Написано 39 полезных сообщений
(для 70 пользователей)
Re: CreateTexture

А как связана "винблитс3д" и графика в Блиц?
(Offline)
 
Ответить с цитированием
Старый 28.07.2007, 17:35   #11
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Re: CreateTexture

32битной должна быть и текстура и графический режим.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
CreateTexture MiXaeL 3D-программирование 10 12.02.2009 05:04
CreateTexture-LoadTerrain JVSh 3D-программирование 3 21.11.2006 23:09


Часовой пояс GMT +4, время: 01:34.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com