|
3D-программирование Вопросы, касающиеся программирования 3D мира |
14.01.2007, 20:39
|
#16
|
Бывалый
Регистрация: 22.09.2005
Сообщений: 634
Написано 36 полезных сообщений (для 102 пользователей)
|
Re: Flags для текстур. Поясните все их значения.
эээ чо?
сделай развёртку ей в максе, наложи 2 текстуры, рассчитай альфу при смешивании
|
(Offline)
|
|
16.12.2007, 20:26
|
#17
|
Разработчик
Регистрация: 08.03.2007
Сообщений: 530
Написано 31 полезных сообщений (для 36 пользователей)
|
Re: Flags для текстур. Поясните все их значения.
а умене вопрос, как заальфить текстуру каким либо мне нужным цветом?
Я нашёл только как чёрный цвет сделать прозрачным.
|
(Offline)
|
|
16.12.2007, 20:29
|
#18
|
Знающий
Регистрация: 06.10.2007
Сообщений: 225
Написано 15 полезных сообщений (для 21 пользователей)
|
Re: Flags для текстур. Поясните все их значения.
Сообщение от CRASHER
а умене вопрос, как заальфить текстуру каким либо мне нужным цветом?
Я нашёл только как чёрный цвет сделать прозрачным.
|
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
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
16.12.2007, 21:24
|
#19
|
Троллота
Регистрация: 09.07.2007
Сообщений: 1,829
Написано 554 полезных сообщений (для 1,772 пользователей)
|
Re: Flags для текстур. Поясните все их значения.
Сообщение от НУБ
4 - скалярное умножение нормалей, такой тип смешивания используется в бамп мапинге, текстура нормалей получается либо из карты высот(по средством плагина для фотожопа например, хоя можно и самому сделать), либо через хай-поли модель(в melody или в 3д максе начиная с 7-го). Для попиксельного освещения с картой нормалей нужно проецировать на мешь текстуру этого самого освещения(тоже карта нормалей с направлением света), обычное вершинное освещение здесь работать не будет.
Выглядеть это может так:
1й слой - карта нормалей с блендом 2
2й - карта освещения с блендом 4(1 и 2 можно поменять местами)
3 - дефуз(2 или 5 бленд)
|
У меня такой код нормально работает:
Graphics3D 1024,768,32,1
SetBuffer BackBuffer()
cam=CreateCamera()
lit=CreateLight(1)
apel=CreateSphere(32)
PositionEntity apel,0,0,4
atex=LoadTexture("texture.png")
EntityTexture apel,atex,0,1
bump=LoadTexture("Orange-bumpmap.bmp")
TextureBlend bump,4
EntityTexture apel,bump,0,0
While Not KeyHit(1)
TurnEntity apel,0,1,0
TurnEntity cam,0,KeyDown(203)-KeyDown(205),0
MoveEntity cam,0,0,KeyDown(200)*0.1-KeyDown(208)*0.1
r#=(EntityX(apel)+1.1) *128.0
g#=(EntityZ(apel)+1.1) *128.0
b#=(EntityY(apel)+1.1) *128.0
EntityColor apel,r#,g#,b#
RenderWorld
Flip
Wend
End
Причем не только нормально, но и красиво
ЗЫЖ У меня как получилось, я сразу на радостях стал статью писать, чтоб другие как я пару месяцев не мучались))
|
(Offline)
|
|
16.12.2007, 22:59
|
#20
|
Разработчик
Регистрация: 08.03.2007
Сообщений: 530
Написано 31 полезных сообщений (для 36 пользователей)
|
Re: Flags для текстур. Поясните все их значения.
Bagration, а чтот у меня не выходит.
Я загрузил текстуру в png формате потом функцию применил, предварительно узнал RGB код в фотошопе, а он что то не хочэт
ааа работает, правда не без фильтра и не всегда, иногда просто не загружается.
А вот было бы сдорово сделать цвет в периоде. Ну чтоб наверняка и может ешчё поскажешь как сгладить края пзалст ?
|
(Offline)
|
|
17.12.2007, 00:27
|
#21
|
Знающий
Регистрация: 06.10.2007
Сообщений: 225
Написано 15 полезных сообщений (для 21 пользователей)
|
Re: Flags для текстур. Поясните все их значения.
Сообщение от CRASHER
Bagrationт ешчё поскажешь как сгладить края пзалст ?
|
LoadTexture и два раза F1. Или:
flags (не обязательно) - дополнительные флаги:
1: Color - цветная (по умолчанию)
2: Alpha - прозрачная
4: Masked - маскированная
8: Mipmapped - сглаживание на расстоянии
16: Clamp U - ограничить текстуру по координате U
32: Clamp V - ограничить текстуру по координате V
64: Spherical environment map - сферическая карта окружения
128: Cubic environment map - кубическая карта окружения
256: Store texture in vram - сохранять текстуру в видеопамяти
512: Force the use of high color textures - улучшенная обработка многоцветных текстур
сам поймешь наверно. Вообщем эксперементируй и все получиться.
P.S. советую заглянуть сюда http://www.boolean.name/showthread.php?t=4695
|
(Offline)
|
|
17.12.2007, 01:51
|
#22
|
Разработчик
Регистрация: 08.03.2007
Сообщений: 530
Написано 31 полезных сообщений (для 36 пользователей)
|
Re: Flags для текстур. Поясните все их значения.
ну если присмотрется, то я третим поблагодарил
я пользовался ентой штукой но я не понял как регулировать альфу и не понял как она вобще края то сгладить может? у меня просто вся текстура полупрозрачная.
ну и мож всётки подскажешь как сделать допустим R от 5 до 15 и G и B так же.
УУФФ да чтож я всё тут мусолюсь )
ну ведь вопрос частый , всем понятно что надо в итоге глаткие края текстуры с альфой любого какого надо цвета.
Я не прошу больше чем ссылку на тутор или на тему обсуждения где всё чётко сказано. извиняюс сорвалсь
|
(Offline)
|
|
17.12.2007, 02:04
|
#23
|
Знающий
Регистрация: 06.10.2007
Сообщений: 225
Написано 15 полезных сообщений (для 21 пользователей)
|
Re: Flags для текстур. Поясните все их значения.
Сообщение от CRASHER
ну если присмотрется, то я третим поблагодарил
я пользовался ентой штукой но я не понял как регулировать альфу и не понял как она вобще края то сгладить может? у меня просто вся текстура полупрозрачная.
ну и мож всётки подскажешь как сделать допустим R от 5 до 15 и G и B так же.
УУФФ да чтож я всё тут мусолюсь )
ну ведь вопрос частый , всем понятно что надо в итоге глаткие края текстуры с альфой любого какого надо цвета.
Я не прошу больше чем ссылку на тутор или на тему обсуждения где всё чётко сказано. извиняюс сорвалсь
|
Как я знаю по моему опыту, дело не в Блитце. Надо сохранять в bmp. Ибо как я замечал jpg немного затуманивает цвета, даже черный не совсем черным становиться. Вроде так. В паинте ставишь цвета R от 5 до 15 и G и B так же и заливаешь задний фон... Просто jpeg уменьшает качество соотвественно размытие цветов.
|
(Offline)
|
|
17.12.2007, 03:25
|
#24
|
Разработчик
Регистрация: 08.03.2007
Сообщений: 530
Написано 31 полезных сообщений (для 36 пользователей)
|
Re: Flags для текстур. Поясните все их значения.
да нет я вобще не сам рисую а уменя есть готовые, но в этих готовых фон как уже стпло понятно размытый. В фотошопе переправлять оч доло да и картинку испортить легко .
А что ссылки не будет?
|
(Offline)
|
|
17.12.2007, 15:55
|
#25
|
Знающий
Регистрация: 06.10.2007
Сообщений: 225
Написано 15 полезных сообщений (для 21 пользователей)
|
Re: Flags для текстур. Поясните все их значения.
Сообщение от CRASHER
да нет я вобще не сам рисую а уменя есть готовые, но в этих готовых фон как уже стпло понятно размытый. В фотошопе переправлять оч доло да и картинку испортить легко .
А что ссылки не будет?
|
Какая ссылка? Гоу Гугл и "уроки по Photoshop". Дело как я уже сказал в качестве картинки. У меня уж был опыт когда мой знакомый нарисовал курсор 64*64 и сохранил его в jpeg - я ужас как долго парился закрашивая фон...
|
(Offline)
|
|
17.12.2007, 17:56
|
#26
|
Разработчик
Регистрация: 08.03.2007
Сообщений: 530
Написано 31 полезных сообщений (для 36 пользователей)
|
Re: Flags для текстур. Поясните все их значения.
Bagration, Ну лано замучил чёт я тебя.
Попробую что понял
|
(Offline)
|
|
17.12.2007, 18:04
|
#27
|
Разработчик
Регистрация: 08.03.2007
Сообщений: 530
Написано 31 полезных сообщений (для 36 пользователей)
|
Re: Flags для текстур. Поясните все их значения.
Сообщение от Bagration
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
|
ах да, хотел попросить о последней просьбе.
не мог бы ты к функции добавить всё что нужно для простейшего примера, а то я ни как не могу вставить, если тяжело я не обижусь
|
(Offline)
|
|
17.12.2007, 21:36
|
#28
|
Знающий
Регистрация: 06.10.2007
Сообщений: 225
Написано 15 полезных сообщений (для 21 пользователей)
|
Re: Flags для текстур. Поясните все их значения.
Сообщение от CRASHER
ах да, хотел попросить о последней просьбе.
не мог бы ты к функции добавить всё что нужно для простейшего примера, а то я ни как не могу вставить, если тяжело я не обижусь
|
http://dump.ru/files/n/n010462830/ Вот сэмпл. Хочу отметить что фон тесктуры красный.
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 12:31.
|