![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#11 |
Участник клуба
Регистрация: 21.11.2007
Сообщений: 1,692
|
![]()
Описание структуры TD3DLight9.
_Type - тип источника света D3DLIGHT_POINT - точечный источник D3DLIGHT_SPOT - прожекторный источник D3DLIGHT_POINT - направленный источник света Diffuse - диффузный (рассеиваемый) цвет Specular - зеркальный цвет Ambient - цвет окружающей среды Position - позиция источника света Direction - направление источника света Range - дистанция, на который действует источник света Falloff - уменьшение в соответствии между внутренним конусом и краем внешнего конуса Attenuation0, Attenuation1, Attenuation2 - параметры затухания Theta - угол в радианах, определяющий внутренний конус прожекторного источника света(от 0 до Phi) Phi - угол в радианах, определяющий внешнюю границу внешнего конуса прожекторного источника света(от 0 до pi) |
![]() |
![]() |
![]() |
#12 |
Участник клуба
Регистрация: 21.11.2007
Сообщений: 1,692
|
![]()
Немного по подробнее о реализации 2D в Direct3D.
В Direct3D есть специальный интерфейс для вывода изображения на экран(ID3DXSprite), но он сильно урезает возможности программиста, лучше написать вывод текстуры на экран на низком уровне. Я приведу небольшой код для загрузки и вывода текстуры на экран. Код:
rhv: это число изменяется от 0 до 1 и представляет собой расстояние от точки просмотра до вершины. u,v: текстурные координаты(1,1 вся текстура) Код:
procedure LoadTextureFromFile( ColorKey:TD3DColor; // прозрачный цвет FileName: String; //имя файла out Texture: IDirect3DTexture9 //текстура ); Не забудьте создать буфер вершин для вывода текстуры Код:
Код:
|
![]() |
![]() |
![]() |
#13 |
Участник клуба
Регистрация: 21.11.2007
Сообщений: 1,692
|
![]()
Подробное описание функции для загрузки текстуры из файла.
Код:
pSrcFile - имя или полный путь к графическому файлу.(форматы: BMP,DDS,DIB,JPG,PNG и TGA); Width и Height - ширина и высота текстуры. Размеры текстуры должны быть кратные степени двойки(8*16,1024*1024,1024*512) иначе ваша программа на ветеранах не запустится. Если указать нули, то функция сама решит каких размеров создать текстуру; MipLevels - количество уровней текстур, это значение определяет кол-во последовательностей текстур; Usage - параметры использования; Format - формат пиксела; Pool - память, в которую будет помещена текстура. Для того чтобы произвести блокировку поверхности и изменить его на прямую нужно установить флаг D3DPOOL_MANAGED; Filter - фильтр изображения; MipFilter - уровень фильтрации; ColorKey - цвет пиксела, который будет прозрачным, если указать 0, то прозрачного цвета нет; pSrcInfo - структура в которую будет записана информация о загруженом файле; pPalette - указатель на палитру; ppTexture - указатель на текстуру; |
![]() |
![]() |
![]() |
#14 |
Участник клуба
Регистрация: 21.11.2007
Сообщений: 1,692
|
![]()
Работа с текстурой напрямую.
Для начала научимся узнавать размеры текстуры. Код:
Код:
|
![]() |
![]() |
![]() |
#15 |
Участник клуба
Регистрация: 21.11.2007
Сообщений: 1,692
|
![]()
К сожалению времени полностью разобрать данный пример у меня небыло и вам придется разбирать пример самостоятельно, если возникнут трудности, то спрашивайте.
И еще, это единственный рабочий пример который я смог найти в интернете, до него я скачивал кучу пример переведенных на Delphi с DX SDK, но больше половины просто не запускалось или выдавали ошибки. В архиве Common находятся необходимые библиотеки для компиляции проекта. В архиве Skin находится пример со всеми необходимыми ресурсами+exe'шник. |
![]() |
![]() |
![]() |
#16 |
Участник клуба
Регистрация: 21.11.2007
Сообщений: 1,692
|
![]()
D3D10 and Delphi and Windows XP = true
Наверняка это уже не тайна но всеже выложу все в одном комплекте. Необходимые dll(игры под dx 10 пойдут на XP) и либы с туториалами для delphi. В основном там одни сплошные интерфейсы для эффектов(шейдеров) и небольшие примеры реализации шейдеров 4-ой версии и как такового DX10 там нет. |
![]() |
![]() |
![]() |
#17 |
Участник клуба
Регистрация: 29.01.2008
Сообщений: 1,039
|
![]()
Огромное спасибо костя, я сегодня скачал примеры. Буду разбирать и смотреть. Если что я тогда вопросы буду задавать.
|
![]() |
![]() |
![]() |
#18 |
Форумчанин
Регистрация: 16.04.2007
Сообщений: 225
|
![]()
хорошийе примеры были наверное но сайт уже удалили с укоза где теперь взять уроки
![]() |
![]() |
![]() |
![]() |
#19 |
Участник клуба
Регистрация: 21.11.2007
Сообщений: 1,692
|
![]() |
![]() |
![]() |
![]() |
#20 |
Регистрация: 28.04.2009
Сообщений: 3
|
![]()
Большая просьба приаттачить модули Direct3D.pas, D3DX9.pas.
Где ещё можно найти информацию по DirectX или OpenGL ? У меня стоит задача нарисовать многогранную пирамидку и перемещать её (отражение,масштабирование и т.п.).Может кто знает,как выполнить эту задачу с использованием других средств(в среде Delphi),учитывая,что в графике я 0 ![]() Заранее спасибо Последний раз редактировалось astr_al; 28.04.2009 в 19:08. |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Direct3D: создание карт и ландшафтов | challengerr | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 4 | 02.05.2009 02:15 |
Перспектива в Direct3D | Ulex | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 2 | 11.03.2008 01:04 |
вопрос по использованию конструкции if | zetrix | Microsoft Office Excel | 0 | 31.10.2006 07:52 |