Какие функции я могу использовать для рендеринга SkyPlane (объяснение ниже) в DirectX9? - PullRequest
1 голос
/ 05 февраля 2012

По сути, это как SkyBox, но плоскость, которая совершенно плоская и находится перед экраном. Моя идея - иметь большую текстуру и в зависимости от того, как вы поворачиваете камеру, она рендерит разные части текстуры на плоскости, как будтоВы движетесь относительно «неба», нарисованного на плоскости, и когда вы достигаете края, оно рендерит его + деталь с другой стороны (я буду использовать бесшовную текстуру, чтобы она не выглядела сшитой). Я понялформул, чтобы сделать это, но я не уверен, какой метод использовать. Я имею в виду, я не уверен, должен ли я делать это в C ++ или это должно быть сделано в шейдере в каком-то файле .fx и непосредственно награфический процессор?

1 Ответ

0 голосов
/ 05 февраля 2012

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

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

Если вам нужно что-то более сложное, например слои или параллакс, вам нужно использовать несколько плоскостей исдвиньте их или используйте шейдер для объединения нескольких текстур.

...