Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.08.20;
Скачать: CL | DM;

Вниз

Переключение между Direct3D и OpenGL   Найти похожие ветки 

 
Ricks ©   (2005-11-30 00:42) [0]

Каким образом делают так, чтобы программы (игры) выводились как при помощи Direct3D, так и при помощи OpenGL?
Например WarCraft III - там ведь можно выбрать, что использовать...
"war3.exe -opengl" всего лишь!


 
Sphinx ©   (2005-11-30 07:47) [1]

что-то типа этого:
TRender = class
 ...
 function Render: Integer; virtual;
 ...
end;

TD3DRender = class
 ...
 function Render: Integer; override;
 ...
end;

TOGLRender = class
 ...
 function Render: Integer; override;
 ...
end;
...
var
 Render : TRender;
...
if Run = RunOGL then
 Render := TOGLRender.Create;
else
 Render := TD3DRender.Create;
...
 Render.Render;


 
_3d[Power] ©   (2005-11-30 09:38) [2]

Посмотри исходники quake2, там это очень наглядно (software \ opengl)


 
Ricks ©   (2005-11-30 11:14) [3]

То есть, приходиться писать отрисовку как для D3D, так и для OpenGL?
Каждую деталь сцены нужно будет писать 2 раза и по разному?

PS: Исходников у меня нет...


 
П7   (2005-11-30 11:52) [4]


> То есть, приходиться писать отрисовку как для D3D, так и
> для OpenGL?

Да, иначе всё было бы слишком просто.


> Каждую деталь сцены нужно будет писать 2 раза и по разному?

При грамотной организации сцены писать приходится не так уж и много. Делается некий фреймворк, в котором наличествуют все необходимые тебе функции. Реализация этих функций производится несколько раз. Например 2 - для DX и OGL. А дальше ты работваешь уже только с этим фреймворком, не затрагивая функций одного из АПИ.
Такой же подход применяется для кроспрлатформенных движков.


> PS: Исходников у меня нет...

Интернет же есть - скачай!


 
Кефир87 ©   (2005-11-30 13:16) [5]

http://citkit.dl.sourceforge.net/sourceforge/quake2delphi/DelphiQuake2Source_20.04.2004.zip


 
Sphinx ©   (2005-11-30 14:28) [6]

Там в моем посте жуткая ошибка (точнее опечатка), которую ни кто и не заметил :)

исправленному верить =0
TD3DRender = class (TRender)
...
TOGLRender = class (TRender)
...


 
П7   (2005-11-30 15:10) [7]


> Sphinx ©   (30.11.05 14:28) [6]

Ну да, ну да, ты прав... (:



Страницы: 1 вся ветка

Текущий архив: 2006.08.20;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.026 c
2-1154026953
ronyn
2006-07-27 23:02
2006.08.20
Дата создания файла - сравнить


2-1153989790
Ironman83
2006-07-27 12:43
2006.08.20
Запись сетевого имени файла


2-1153677809
userrrrr
2006-07-23 22:03
2006.08.20
Подключение к сети


2-1154430637
Dysan
2006-08-01 15:10
2006.08.20
Как выловить утечку памяти в программе?


15-1152465022
tButton
2006-07-09 21:10
2006.08.20
виндус