|
3D-программирование Вопросы, касающиеся программирования 3D мира |
25.07.2007, 22:03
|
#1
|
Оператор ЭВМ
Регистрация: 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
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Re: CreateTexture
LockBuffer
UnlockBuffer
WritePixel
ReadPixel
Вот комманды которые тебе нужны, в справке есть примеры по работе с ними.
|
(Offline)
|
|
26.07.2007, 13:39
|
#3
|
Знающий
Регистрация: 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
|
Оператор ЭВМ
Регистрация: 13.11.2006
Сообщений: 39
Написано 0 полезных сообщений (для 0 пользователей)
|
Re: CreateTexture
Спасибо конечно огромное. Но нельзя ли поконкретней специально для этого кода.
|
(Offline)
|
|
26.07.2007, 20:05
|
#5
|
Бывалый
Регистрация: 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
|
Оператор ЭВМ
Регистрация: 13.11.2006
Сообщений: 39
Написано 0 полезных сообщений (для 0 пользователей)
|
Re: CreateTexture
Неработает
|
(Offline)
|
|
26.07.2007, 22:50
|
#7
|
Знающий
Регистрация: 04.08.2006
Адрес: Россия
Сообщений: 297
Написано 39 полезных сообщений (для 70 пользователей)
|
Re: CreateTexture
Ты читать умеешь? Я же написал - текстуре ставить флаг 4 или 2! Третий параметр в CreateTexture().
|
(Offline)
|
|
27.07.2007, 13:37
|
#8
|
Оператор ЭВМ
Регистрация: 13.11.2006
Сообщений: 39
Написано 0 полезных сообщений (для 0 пользователей)
|
Re: CreateTexture
OK всё работает огромное спасибо
|
(Offline)
|
|
27.07.2007, 20:09
|
#9
|
Оператор ЭВМ
Регистрация: 13.11.2006
Сообщений: 39
Написано 0 полезных сообщений (для 0 пользователей)
|
Re: CreateTexture
Работает но с библиотекой винблитс3д не хочет. Не льзяли как нибудь по другому реализовать.
|
(Offline)
|
|
27.07.2007, 23:42
|
#10
|
Знающий
Регистрация: 04.08.2006
Адрес: Россия
Сообщений: 297
Написано 39 полезных сообщений (для 70 пользователей)
|
Re: CreateTexture
А как связана "винблитс3д" и графика в Блиц?
|
(Offline)
|
|
28.07.2007, 17:35
|
#11
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Re: CreateTexture
32битной должна быть и текстура и графический режим.
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 01:34.
|