![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Свет,туман
VitGun © (2002-09-18 18:14:00)Доброго времени суток всем!!! Надеюсь, что еще не достал вас дурацкими вопросами...вот такая трабла: как в DelphiX добавить источник света? Или туман?
На форме есть: Dxdraw, dximagelist,dxtimer.
На dxdraw рисую 2.5D карту и пробую добавить источник света, но...ничего не происходит...А вот так я делал свет:
...
var Light: IDirect3DRMLight;
begin
DXDraw1.D3DRM.CreateLightRGB(D3DRMLIGHT_DIRECTIONAL, 1, 0, 1, Light);
DXDraw1.Scene.AddLight(Light);
...
но как ни менял цвет, ничего не происходит, может кто просветит в данном вопросе??
NailMan (2002-09-26 01:36:00) [1]А можно использовать интерфейс ID3DXSprite в модуле D3DX8 из DirectX API.
У меня в игре(DirectX 8) вся экранная спрайтовая байда(элементы менюшеки, HUD в игре, текст и прочее фуфло) рисуется посредством одного-единственного спрайта(и пять кусковых текстур со всеми элементами, шрифтами и т.д). Задаешь координаты UL угла, масштаб, TRect области на текстуре, угол поворота и точку поворота(и преде этим устанавливаешь стейты смешивания альфа канала) и вуаля. Никакого геморроя. Этот спрайт один раз создал и все элементы через него выводишь. Все просто до нельзя.
Но этот спрайт подходит только для простых 2Д страйтов(менюхи, текст) а для спецэффектовых надо делать в виде 2-х полигонов и проецировать их с экранной плоскости в реальные координаты.
VitGun (2002-09-25 18:07:00) [2]Artemy, я не ленивый, просто не нашел...за пример спасибо щас буду смотреть.
Artemiy (2002-09-24 21:48:00) [3]ЛЕНЬ - это плохо! Всё там есть!
кинул пример...
VitGun (2002-09-24 18:10:00) [4]Artemy, на форуме я был...но ничего интересного и полезного не нашел, если не трудно - кинь примерчик на мыло...plz.
Artemiy (2002-09-20 16:46:00) [5]VitGun
пишу на DelphiX, но это почти без разницы, в ДельфиХ по меньше писать, но зато скорость меньше да и Хори больше не хочет обновлять его.
рисовать просто:
1. инифцилизировать Д3Д.
2. загрузить текстуру.
3. задать вершины.
4. выкинуть на экран полигоны с текстурой.
сходи на форум www.gamedev.ru там это не раз обсуждалось...
VitGun (2002-09-19 18:02:00) [6]Artemiy, тогда возникает вопрос: как рисовать спрайты в D3D? Canvas"ом что-ли?
З.Ы Кстати ты свой движок на чем пишешь, на DelphiX или DirectX API?
Artemiy (2002-09-19 14:50:00) [7]VitGun
да pasha676 прав. нельзя так делать....точнее это не может работать! Нужно или руками рисовать (там палитра или ещё чё) но это ИМХО убого и медленно. Или рисовать спрайты с помощью Д3Д а там уже есть возможность сделать более простым и быстрым способом свет. вот можеш посмотреть что у меня получается: artemiy.boom.ru
pasha676 (2002-09-18 18:21:00) [8]То есть ты рисуешь двухмерную "плоскую" карту и пытаешся добавить туда трехмарный источник света? Поправте меня, но это не должно вроде работать в принцыпе.
У меня в одной проге показываются трехмерные объекты и показания датчиков. Датчики изображены двухмерно (вращающиеся рисунки из DXImageList-а + цифирки). Источник трехмерного света ни как вообще не влияет на эти рисунки.