PMG

Форумы по созданию игр
Текущее время: 28 мар 2024 23:47

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 14 ] 
Автор Сообщение
 Заголовок сообщения: Туманчик
СообщениеДобавлено: 30 окт 2006 22:36 
Не в сети
Опытный
Аватара пользователя

Зарегистрирован: 29 апр 2006 21:28
Сообщения: 404
как сделать туман в ДХ9 :o

_________________
С уважением,Блинов Андрей.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 31 окт 2006 18:40 
Не в сети
Опытный
Аватара пользователя

Зарегистрирован: 29 апр 2006 21:28
Сообщения: 404
Мдя.... все ДХ прогеры повымерали! ;/

_________________
С уважением,Блинов Андрей.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 01 ноя 2006 12:45 
Не в сети
Опытный
Аватара пользователя

Зарегистрирован: 11 авг 2004 17:00
Сообщения: 283
Откуда: Москва
Книга Фрэнка Луны по DirectX - в последней главе описано как реализовать туман.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 01 ноя 2006 18:44 
Не в сети
Опытный
Аватара пользователя

Зарегистрирован: 29 апр 2006 21:28
Сообщения: 404
NetLib,Да знаю.... но там на шейдерах....,а хочется простой туманчик который делается посредством ДХ.

_________________
С уважением,Блинов Андрей.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 04 ноя 2006 11:16 
Не в сети
Опытный
Аватара пользователя

Зарегистрирован: 11 авг 2004 17:00
Сообщения: 283
Откуда: Москва
Там как раз не на шейдерах. Все делается с помощью фиксированного конвейера.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 05 ноя 2006 15:00 
Не в сети
Опытный
Аватара пользователя

Зарегистрирован: 29 апр 2006 21:28
Сообщения: 404
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;       // Разрешить вершинный туман
     }
}



_________________
С уважением,Блинов Андрей.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 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;       // Разрешить вершинный туман
     }


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


Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: 05 ноя 2006 16:39 
Не в сети
Опытный
Аватара пользователя

Зарегистрирован: 29 апр 2006 21:28
Сообщения: 404
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));

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

_________________
С уважением,Блинов Андрей.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 05 ноя 2006 17:01 
Цитата:
Fox,NetLib,
Ээээ... ладно,сам нашёл...
Вот так это делается фиксированным конвеером

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

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


Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: 05 ноя 2006 18:55 
Не в сети
Опытный
Аватара пользователя

Зарегистрирован: 29 апр 2006 21:28
Сообщения: 404
Fox,Решил по тому что вызывать туман функцией по компелированию шейдеров это не изврат разве?

_________________
С уважением,Блинов Андрей.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 05 ноя 2006 18:57 
Не в сети
Опытный
Аватара пользователя

Зарегистрирован: 29 апр 2006 21:28
Сообщения: 404
Fox, Гдето здесь
http://www.zanir.szm.sk/00-09.html

_________________
С уважением,Блинов Андрей.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 06 ноя 2006 02:09 
Не в сети
Опытный
Аватара пользователя

Зарегистрирован: 11 авг 2004 17:00
Сообщения: 283
Откуда: Москва
Цитата:
Вот так это делается фиксированным конвеером


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

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).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 06 ноя 2006 16:46 
Не в сети
Опытный
Аватара пользователя

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

_________________
С уважением,Блинов Андрей.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 06 ноя 2006 23:18 
Не в сети
Опытный
Аватара пользователя

Зарегистрирован: 11 авг 2004 17:00
Сообщения: 283
Откуда: Москва
Да нет, просто для сложных сцен вы выполняете визуализацию по нескольку раз, включая различные состояния визуализации и используя различные шейдеры. Вот чтобы всю информацию объединить в одном файле это и используется.

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


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 14 ] 

Часовой пояс: UTC + 3 часа [ Летнее время ]


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

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


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB