Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.03.2011, 00:38   #1
ImmortalAlexSan
Участник клуба
 
Аватар для ImmortalAlexSan
 
Регистрация: 13.01.2009
Сообщений: 1,353
Радость Пишем движок на C++ и DirectX (RPG)

Относительно недавно начал заниматься графикой, и уже как неделю, пока болел, долбил DirectX->Direct3D по книгам:
1. "Введение в программирование трехмерных игр с DX9" Франк Д. Луна.
2. "DirectX и искусство программирования" М. Фленов.
3. "Programming roling playing games with DirectX" Jim Adams. (2 издание)
4. "3D-ландшафты в реальном времени на С++ и DirectX9" Г.Снук.
Работы предстоит очень много, но я никуда не тороплюсь. Этой темой хочу помочь и себе, и таким же как я (новичкам в этом деле), и возможно тем, кто более опытен (свежим взглядом на вещи).
Я начал с малого - с определения возможностей видеокарты и инициализации Direct3D, а так же сегодня начал, сегодня закончил и проверил на работоспособность так сказать часть визуальной системы движка (работа с камерой, установка локальных координат объектов в мировые координаты, установка проэкции на монитор, т.е. все, что требуется для корректной отрисовки объектов).
Хочу поделиться тем, что разработал, и заодно услышать критику.
Вложения
Тип файла: zip Display_Kernel.zip (1.2 Кб, 130 просмотров)
"Тебе то может на меня и насрать, но твои глаза меня обожают!"
ImmortalAlexSan вне форума Ответить с цитированием
Старый 10.03.2011, 01:08   #2
.pixel
c++, dx/ogl
Форумчанин
 
Аватар для .pixel
 
Регистрация: 10.11.2008
Сообщений: 131
По умолчанию

У вас есть план, цель, концепция, идея?
Может надо начать именно с этого?
Сначала достаточно абстрактно описать общие моменты, а в дальнейшем детализировать и реализовывать в виде кода, наметить план работ.

Цитата:
Я начал с малого - с определения возможностей видеокарты и инициализации Direct3D
Почему не с DirectInput? Оно еще меньше)
“Batch, Batch, Batch:” What Does It Really Mean?
I am a donut! Ask not how many tris/batch, but
rather how many batches/frame!
.pixel вне форума Ответить с цитированием
Старый 11.03.2011, 01:32   #3
ImmortalAlexSan
Участник клуба
 
Аватар для ImmortalAlexSan
 
Регистрация: 13.01.2009
Сообщений: 1,353
По умолчанию

Я, как уже писал, в этом новичок, DirectInput второй на очереди. А с инициализации и камеры начал потому, что параллельно я изучаю и визуальную часть (импорт *.X, шейдеры, эффекты), и мне в первую очередь необходимо видеть, что я делаю. Как только я набираюсь опыта, то пытаюсь написать какую-нибудь примочку к будущему движку. Вот такая логика =) План работ есть.
"Тебе то может на меня и насрать, но твои глаза меня обожают!"
ImmortalAlexSan вне форума Ответить с цитированием
Старый 12.03.2011, 18:54   #4
ImmortalAlexSan
Участник клуба
 
Аватар для ImmortalAlexSan
 
Регистрация: 13.01.2009
Сообщений: 1,353
По умолчанию

Представляю на суд очередную наработку ядра ввода. Критика приветствуется.
Вложения
Тип файла: zip InputKernel.zip (1.4 Кб, 68 просмотров)
"Тебе то может на меня и насрать, но твои глаза меня обожают!"
ImmortalAlexSan вне форума Ответить с цитированием
Старый 16.03.2011, 18:05   #5
.pixel
c++, dx/ogl
Форумчанин
 
Аватар для .pixel
 
Регистрация: 10.11.2008
Сообщений: 131
По умолчанию

След. шагом по идее должен быть простой фрейм-ворк с кубиком в сцене.
Или у вас что-то более грандиозное готовится?)
“Batch, Batch, Batch:” What Does It Really Mean?
I am a donut! Ask not how many tris/batch, but
rather how many batches/frame!
.pixel вне форума Ответить с цитированием
Старый 17.03.2011, 12:08   #6
ImmortalAlexSan
Участник клуба
 
Аватар для ImmortalAlexSan
 
Регистрация: 13.01.2009
Сообщений: 1,353
По умолчанию

.pixel, хотел со звуком поработать, но оставил на потом и решил всё-таки взяться за построение местности уровня (пока тестового, ничего фееричного). До конца этого месяца исходников точно не покажу.
"Тебе то может на меня и насрать, но твои глаза меня обожают!"
ImmortalAlexSan вне форума Ответить с цитированием
Старый 25.03.2011, 16:55   #7
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Встретил у вас в DisplayKernel вот такой код:
Код:
void CCamera::set_world_result ()
{
	D3DXMatrixIdentity (&world_result);
	D3DXMatrixMultiply (&world_result, &world_result, &world_scale);
	D3DXMatrixMultiply (&world_result, &world_result, &world_rotX);
	D3DXMatrixMultiply (&world_result, &world_result, &world_rotY);
	D3DXMatrixMultiply (&world_result, &world_result, &world_rotZ);
	D3DXMatrixMultiply (&world_result, &world_result, &world_pos);
	idev->SetTransform (D3DTS_WORLD, &world_result);
}
Можно было проще написать:
Код:
void CCamera::set_world_result ()
{
	D3DXMatrixIdentity (&world_result);
           D3DXMatrixMultiply (&world_result, &world_rotX,   &world_rotY);
           D3DXMatrixMultiply (&world_result, &world_result, &world_rotZ);
           D3DXMatrixMultiply (&world_result, &world_result, &world_scale);
           D3DXMatrixMultiply (&world_result, &world_result, &world_pos);
           idev->SetTransform (D3DTS_WORLD, &world_result);
}
Уже всё-таки на операцию умножения меньше, а если данный метод будет встречаться часто, то это будет существенная экономия времени.
И ещё.
Цитата:
Я начал с малого - с определения возможностей видеокарты
Что-то я там не обнаружил подобного
Цитата:
До конца этого месяца исходников точно не покажу.
А лучше и не показывайте, показывайте только результат.
_-Re@l-_ вне форума Ответить с цитированием
Старый 25.03.2011, 22:08   #8
Ulex
Непрофессионал
Участник клуба
 
Аватар для Ulex
 
Регистрация: 01.01.2008
Сообщений: 1,432
По умолчанию

Цитата:
Можно было проще написать:

Код:
void CCamera::set_world_result ()
{
	D3DXMatrixIdentity (&world_result);
           D3DXMatrixMultiply (&world_result, &world_rotX,   &world_rotY);
           D3DXMatrixMultiply (&world_result, &world_result, &world_rotZ);
           D3DXMatrixMultiply (&world_result, &world_result, &world_scale);
           D3DXMatrixMultiply (&world_result, &world_result, &world_pos);
           idev->SetTransform (D3DTS_WORLD, &world_result);
}
Именно так нельзя. У вас разные матрицы получатся. И картинки тоже, соответственно, разные.
В вашем случае объект сначала разворачивается, затем (уже повёрнутый) масштабируется, а это неправильно. По крайней мере нелогично и неудобно.
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------
Страничка с моими программками http://ulex-masm.ru
Ulex вне форума Ответить с цитированием
Старый 26.03.2011, 12:07   #9
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Ну значит так...
Код:
void CCamera::set_world_result ()
{
	D3DXMatrixIdentity (&world_result);
           D3DXMatrixMultiply (&world_result, &world_result, &world_scale);
           D3DXMatrixMultiply (&world_result, &world_rotX,   &world_rotY);
           D3DXMatrixMultiply (&world_result, &world_result, &world_rotZ);
           D3DXMatrixMultiply (&world_result, &world_result, &world_pos);
           idev->SetTransform (D3DTS_WORLD, &world_result);
}
_-Re@l-_ вне форума Ответить с цитированием
Старый 26.03.2011, 18:53   #10
Ulex
Непрофессионал
Участник клуба
 
Аватар для Ulex
 
Регистрация: 01.01.2008
Сообщений: 1,432
По умолчанию

Неа, так вы масштабирование вообще потеряете.
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------
Страничка с моими программками http://ulex-masm.ru
Ulex вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
посоветуйте движок.(DirectX) Пепел Феникса Gamedev - cоздание игр: Unity, OpenGL, DirectX 11 16.07.2010 11:53
Что мощнее или портативнее движок directx или opengl? albatros Помощь студентам 2 08.12.2009 17:43
Помогитеу становить движок на сайт. Движок Joomla acmilan WordPress и другие CMS 2 01.04.2009 11:26
Ищу движок (delphi directx 9) [Smarik] Gamedev - cоздание игр: Unity, OpenGL, DirectX 14 26.08.2008 22:34