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 |
Автор: | 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, Ээээ... ладно,сам нашёл... Вот так это делается фиксированным конвеером Если не секрет, то где именно нашёл? Цитата: А то что в примере это изврат
Почему ты так решил? |
Автор: | 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/ |