Создание эффектов в 3D игре с нуля, используя c ++ и DirectX - PullRequest
1 голос
/ 19 июня 2010

Так что название говорит это.Я не смог найти никакой информации о том, как на самом деле встроить эффекты в 3D-игру.Возможно, позже я остановлюсь на каком-то движке, но для понимания всего этого мне нужно попробовать это самостоятельно.Я нашел несколько о системах частиц, которые могут быть правильными, но любая другая связь между DirectX и системами частиц в Google дала результаты как 3DSmax и т. Д.

Так что я был бы благодарен, если бы вы указали мне на некоторые урокидля этого или объяснения ... Последняя возможность - указать мне на какой-то простой движок, сфокусированный на этой вещи (я действительно не хочу пробираться сквозь тонны кода и понимать, как работает этот движок, мне просто нужно посмотреть, как ониреализовать этот материал FX).

Спасибо

PS: другая возможность была бы, если бы вы знали о хорошей книге, обсуждающей это.Это может быть более сложным, но помимо учебников, книги обычно пишутся более основательно, так что это был бы хороший способ пойти

Ответы [ 4 ]

4 голосов
/ 19 июня 2010

Прежде всего: эффекты частиц - это всего лишь один из видов эффектов, лучше указать слово «движок частиц»: стр.

Во-вторых: поищите в статьях Gamedev , это действительно лучший ресурс, если вы хотите что-то подобное. Вы можете найти много статей и даже лучше, множество ссылок и полезную информацию на форумах. Две статьи, на которые я могу сослаться, - это NeHe урок о частицах в OpenGL , это не directx, но руководства NeHe для OpenGL очень хороши. Я также нашел один для directx8 и VB (так немного старше).

Имейте в виду, что движок частиц часто является огромным ударом по производительности, если вы не можете оптимизировать его самостоятельно, поэтому постарайтесь взглянуть на игровые движки с открытым исходным кодом (например, OGRE) о том, как они реализуют его, или даже лучше, о конкретной частице двигатели.

1 голос
/ 19 июня 2010

Лучшие книги для изучения D3D9.0c / D3D10 - Фрэнк Луна. Просто поместите его в Amazon или Google, и вы получите результаты. Он учит, как создать полноценный игровой движок с нуля.

1 голос
/ 19 июня 2010

OpenGL - лучший выбор, чтобы узнать, что я чувствую.Glut доступен бесплатно и имеет все функции, необходимые для реализации движка частиц.Плюс множество примеров кода онлайн.Мне нравится, как функции.Легко запомнить и использовать логически

1 голос
/ 19 июня 2010

Так что я был бы благодарен, если бы вы указали мне некоторые уроки для этого

Вам необходимо скачать Microsoft DirectX SDK . В дополнение к этому, вы должны попробовать NVidia SDK . Вы также можете попробовать ATI SDK . Изучите их всех.

В дополнение к ним ... есть несколько книг по OpenGL: "Красная книга" , "Синяя книга" , Оранжевая книга . "Компьютерная графика с использованием OpenGL" от Фрэнсиса Хилла также очень хороша.

Получите эту информацию и начните читать.

как реально встроить эффекты в 3D игру

Этот вопрос слишком широкий. Существуют световые эффекты, системы частиц, эффекты постобработки, физика (которые также являются эффектами), и даже анимация персонажей - это эффект. Неясно, о каких эффектах вы говорите.

Как вы думаете, лучше DirectX или OpenGL.

Они более или менее равны. Вы можете сделать то же самое в обоих из них. Попробуйте оба и выберите тот, который вам понравился больше. OpenGL лучше для игры и экспериментов (потому что вы можете легко нарисовать треугольник, не мешая с аппаратными буферами), доступный на большем количестве платформ, плюс GLSL лучше, чем HLSL (потому что он не «компилируется в сборку»). DirectX изначально ориентирован на производительность, доступен на XBox360, а 9-я версия была действительно хорошей. openGL более «абстрактный», а DirectX ближе к аппаратному.

Если бы вы могли использовать такие факторы, как простота, область использования, производительность, количество примеров и ресурсов и т. Д.

  1. Если вы хотите простоты, вы должны забыть о создании игрового движка. Вам придется многому научиться, если вы хотите заниматься 3D.
  2. DirectX и OpenGL используются для создания 3D-продуктов.
  3. Вы можете получить хорошую производительность как с DirectX, так и с OpenGL, а также получить низкую производительность, если не знаете, что делаете.
  4. У DirectX и OpenGL огромное количество примеров и книг - просто поищите их. Они не были сделаны вчера, поэтому достаточно информации уже доступно.

Вам нужно выбрать цель, выбрать платформу, выбрать свой API, исследовать доступные технологии и начать писать код. Интересно, «какой из них лучше» - пустая трата времени. 3D-знания и алгоритм одинаково применимы к обоим API.

...