PMG
http://forum.pmg.org.ru/

Туманчик
http://forum.pmg.org.ru/viewtopic.php?f=2&t=871
Страница 1 из 1

Автор:  Assassin [ 30 окт 2006 22:36 ]
Заголовок сообщения:  Туманчик

как сделать туман в ДХ9 :o

Автор:  Assassin [ 31 окт 2006 18:40 ]
Заголовок сообщения: 

Мдя.... все ДХ прогеры повымерали! ;/

Автор:  NetLib [ 01 ноя 2006 12:45 ]
Заголовок сообщения: 

Книга Фрэнка Луны по DirectX - в последней главе описано как реализовать туман.

Автор:  Assassin [ 01 ноя 2006 18:44 ]
Заголовок сообщения: 

NetLib,Да знаю.... но там на шейдерах....,а хочется простой туманчик который делается посредством ДХ.

Автор:  NetLib [ 04 ноя 2006 11:16 ]
Заголовок сообщения: 

Там как раз не на шейдерах. Все делается с помощью фиксированного конвейера.

Автор:  Assassin [ 05 ноя 2006 15:00 ]
Заголовок сообщения: 

NetLib,
Хмм... это вы называете фиксированным конвеером?
Код:
//
// Файл:     fog.txt
// Описание: Файл эффекта, устанавливающий режимы визуализации
//           для линейного вершинного тумана
//
technique Fog
{
     pass P0
     {
          //
          // Устанавливаем различные режимы визуализации
          //

          pixelshader      = null;
          vertexshader     = null;
          fvf              = XYZ | Normal;
          Lighting         = true;
          NormalizeNormals = true;
          SpecularEnable   = false;

          //
          // Режимы тумана
          //

          FogVertexMode = LINEAR; // Линейная функция тумана
          FogStart = 50.0f;       // Туман начинается в
                                  // 50 единицах от камеры.
          FogEnd = 300.0f;        // Туман заканчивается в
                                  // 300 единицах от камеры
          FogColor = 0x00CCCCCC;  // Туман серого цвета
          FogEnable = true;       // Разрешить вершинный туман
     }
}



Автор:  Tiger [ 05 ноя 2006 15:32 ]
Заголовок сообщения: 

Цитата:
NetLib,
Хмм... это вы называете фиксированным конвеером?

NetLib прав!!! В этом примере не используются шейдеры.
Код:
//
// Файл:     fog.txt
// Описание: Файл эффекта, устанавливающий режимы визуализации
//           для линейного вершинного тумана
//
technique Fog
{
     pass P0
     {
          //
          // Устанавливаем различные режимы визуализации
          //

          pixelshader      = null;          // Пиксельных шейдеров нет
          vertexshader     = null;          // Вершинных шейдеров нет
          fvf              = XYZ | Normal;  // Настраиваемый формат вершин
          Lighting         = true;          // Разрешаем освещение
          NormalizeNormals = true;          // Нормализуем нормали

          SpecularEnable   = false;         // Отключаем отражаемый свет


          //
          // Режимы тумана
          //

          FogVertexMode = LINEAR; // Линейная функция тумана
          FogStart = 50.0f;       // Туман начинается в
                                  // 50 единицах от камеры.
          FogEnd = 300.0f;        // Туман заканчивается в
                                  // 300 единицах от камеры
          FogColor = 0x00CCCCCC;  // Туман серого цвета
          FogEnable = true;       // Разрешить вершинный туман
     }


В этом примере шейдеры равны нулю, то есть отключены. Если они тебя смушают, можешь их вообше удалить.

Автор:  Assassin [ 05 ноя 2006 16:39 ]
Заголовок сообщения: 

Fox,NetLib,
Ээээ... ладно,сам нашёл...
Вот так это делается фиксированным конвеером
Код:
m_pDirect3DDevice->SetRenderState(D3DRS_FOGENABLE,true);
m_pDirect3DDevice->SetRenderState(D3DRS_RANGEFOGENABLE,true);
m_pDirect3DDevice->SetRenderState(D3DRS_FOGCOLOR,D3DCOLOR_XRGB(128,128,128));
m_pDirect3DDevice->SetRenderState(D3DRS_FOGVERTEXMODE,D3DFOG_LINEAR);
m_pDirect3DDevice->SetRenderState(D3DRS_FOGSTART,*(DWORD*)(&fFogStart));
m_pDirect3DDevice->SetRenderState(D3DRS_FOGEND,*(DWORD*)(&fFogEnd));

А то что в примере это изврат :|

Автор:  Tiger [ 05 ноя 2006 17:01 ]
Заголовок сообщения: 

Цитата:
Fox,NetLib,
Ээээ... ладно,сам нашёл...
Вот так это делается фиксированным конвеером

Если не секрет, то где именно нашёл?
Цитата:
А то что в примере это изврат :|

Почему ты так решил? :o

Автор:  Assassin [ 05 ноя 2006 18:55 ]
Заголовок сообщения: 

Fox,Решил по тому что вызывать туман функцией по компелированию шейдеров это не изврат разве?

Автор:  Assassin [ 05 ноя 2006 18:57 ]
Заголовок сообщения: 

Fox, Гдето здесь
http://www.zanir.szm.sk/00-09.html

Автор:  NetLib [ 06 ноя 2006 02:09 ]
Заголовок сообщения: 

Цитата:
Вот так это делается фиксированным конвеером


Ну так в том примере, который я предложил то же самое. Только записано в другой форме.

m_pDirect3DDevice->SetRenderState(D3DRS_FOGENABLE,true); // это FogEnable = true;
m_pDirect3DDevice->SetRenderState(D3DRS_FOGCOLOR,D3DCOLOR_XRGB(128,128,128)); // это FogColor = 0x00CCCCCC;
m_pDirect3DDevice->SetRenderState(D3DRS_FOGVERTEXMODE,D3DFOG_LINEAR); // это FogVertexMode = LINEAR;
m_pDirect3DDevice->SetRenderState(D3DRS_FOGSTART,*(DWORD*)(&fFogStart)); // это FogStart = 50.0f;
m_pDirect3DDevice->SetRenderState(D3DRS_FOGEND,*(DWORD*)(&fFogEnd)); // это FogEnd = 300.0f;

Если вннимательно прочитать 19 главу, там написано как преобразовать описание техники в команды фиксированного конвейера (то есть в последовательность вызовов SetRenderState).

Автор:  Assassin [ 06 ноя 2006 16:46 ]
Заголовок сообщения: 

NetLib,Ну а зачем так извращатся?Что б получился отдельный файл и приписать его к шейдеру? ;/

Автор:  NetLib [ 06 ноя 2006 23:18 ]
Заголовок сообщения: 

Да нет, просто для сложных сцен вы выполняете визуализацию по нескольку раз, включая различные состояния визуализации и используя различные шейдеры. Вот чтобы всю информацию объединить в одном файле это и используется.

Кроме того, если что-то надо поменять, то вы меняете только файл эффекта, а не перекомпилируете всю программу.

Страница 1 из 1 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/