...ТУМАН...

Работа с 2D и 3D графикой, видео, звуком.

Модератор: Mikle

|( () ( T |/| |(
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 211
Зарегистрирован: 01.10.2005 (Сб) 15:49

...ТУМАН...

Сообщение |( () ( T |/| |( » 06.10.2005 (Чт) 23:27

Как сделать туман?(типо как в Q3 на той туманной арени)

d3drm
Астролог
Астролог
Аватара пользователя
 
Сообщения: 2873
Зарегистрирован: 29.05.2002 (Ср) 23:34
Откуда: МаСКвА

Сообщение d3drm » 06.10.2005 (Чт) 23:52

|( () ( T |/| |(, ты хорош эта.. флудить-то... а то развел тем. Создал бы одну тему: как создать игру типо DOOM III на visual Basic, желательно с примером, и все! а ты мучаешься!
ХЎ

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Сообщение Mikle » 07.10.2005 (Пт) 9:50

|( () ( T |/| |(
Такой туман тоже пока что рано, а вот обычный:
Код: Выделить всё
  d3dDevice.SetRenderState D3DRS_FOGENABLE, 1
  d3dDevice.SetRenderState D3DRS_FOGCOLOR, &H808080
  d3dDevice.SetRenderState D3DRS_FOGDENSITY, FtoDW(0.5)
  d3dDevice.SetRenderState D3DRS_FOGTABLEMODE, D3DFOG_EXP

Перед тем, как спрашивать что такое FtoDW, найди эту ф-цию в примерах SDK.

|( () ( T |/| |(
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 211
Зарегистрирован: 01.10.2005 (Сб) 15:49

Сообщение |( () ( T |/| |( » 07.10.2005 (Пт) 11:35

d3drm
Зачем делать то что уже сделано... я хочу DOOM IV :-)

|( () ( T |/| |(
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 211
Зарегистрирован: 01.10.2005 (Сб) 15:49

Сообщение |( () ( T |/| |( » 07.10.2005 (Пт) 14:14

Mikle
Насчёт SDK: Это те примеры что на ms.com лежат? Если да, то их у меня нет. а скачивать все мне невыгодно (я через мобилу сежу).
Можешь ссылку на нужный кинуть?
PS. А когда быдет непозно???)

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Сообщение Mikle » 07.10.2005 (Пт) 17:01

|( () ( T |/| |(
SDK - вещь очень полезная, постарайся найти на CD или переписать у кого-нибудь.
FtoDW - это передача Single числа, когда ф-ция просит Long. Так как бейсик не дает сделать такое безобразие напрямую (дисциплина типов), в SDK делали так - засылали в D3DX буфер Single, а вытаскивали оттуда уже Long. Но это очень тормознуто, сделай что-то вроде этого:
Код: Выделить всё
Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)

Function FtoDW (s as Single) as Long
dim d as Long
  CopyMemory d, s, 4
  FtoDW = d
End Function

А когда быдет непозно???)

Когда про самое простое перестанешь спрашивать. :wink:

|( () ( T |/| |(
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 211
Зарегистрирован: 01.10.2005 (Сб) 15:49

Сообщение |( () ( T |/| |( » 07.10.2005 (Пт) 22:26

Спосибо.

K0GG
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 20
Зарегистрирован: 28.02.2011 (Пн) 14:26
Откуда: Москва

Re: ...ТУМАН...

Сообщение K0GG » 23.03.2011 (Ср) 16:09

У меня всегда цвет материал меша заменяется на цвет тумана, независимо от глубины.
Использую разные типы тумана и дистанции
Код: Выделить всё
    d3dDevice.SetRenderState D3DRS_FOGENABLE, 1
     d3dDevice.SetRenderState D3DRS_FOGCOLOR, &HAA22AA
'    d3dDevice.SetRenderState D3DRS_FOGTABLEMODE, D3DFOG_LINEAR
    d3dDevice.SetRenderState D3DRS_FOGVERTEXMODE, D3DFOG_LINEAR
    d3dDevice.SetRenderState D3DRS_FOGSTART, 0.9
    d3dDevice.SetRenderState D3DRS_FOGEND, 1
    d3dDevice.SetRenderState D3DRS_RANGEFOGENABLE, 1

В SDK говорится о том, что преобразование матрицы проекции, если она ненормированная, портит туман.

Есть ли у кого маленький полный рабочий пример с разными видами тумана?
K0GG
"Omnia ab uno et in unum omnia"
_____
http://gorkavchukkg.narod.ru

K0GG
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 20
Зарегистрирован: 28.02.2011 (Пн) 14:26
Откуда: Москва

Re: ...ТУМАН...

Сообщение K0GG » 24.03.2011 (Чт) 10:01

Разобрался.
Очень критично использование функции FtoDW.
Вот полный пример (VBA, Excel):
У вас нет доступа для просмотра вложений в этом сообщении.
K0GG
"Omnia ab uno et in unum omnia"
_____
http://gorkavchukkg.narod.ru

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Re: ...ТУМАН...

Сообщение Mikle » 24.03.2011 (Чт) 11:17

Ещё более простой и быстрый вариант FtoDW:
Код: Выделить всё
Public Declare Function FtoDW Lib "msvbvm60" Alias "VarPtr" (ByVal s As Single) As Long


Вернуться в Мультимедиа

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5

    TopList