Лод на то и лод, чтобы быть простым и быстрым. Но ведь хочеться чтобы, вдобавок, было и красиво.
Что мы имеем изначально:
Освещение не очень, правда? Как можно это исправить? Правильно, картой нормалей. Откуда её взять? Ну уж не рисовать самому конечно =) У нас же есть высокодетализированная геометрия ландшафа( патчи ).
Выствляем матрицы:
view = math::matrix_look_at_lh( |
_Winnie C++ Colorizer |
В шейдере не стоит забывать, что просто взять и записать в текстуру нормаль нельзя. Ибо она может содержать отрицательные значения. Посему пишем так:
float4 ps_main( in float3 norm : TEXCOORD0 ) : COLOR |
_Winnie C++ Colorizer |
Заодно я поменял y и z координаты, чтобы в дальнейшем не было путанницы ( привет, нелюбимая система координат 3dmax ).
В результате иммем:

Осветить всё это дело проблем уже не составляет.

Таким образом получаем вполне прилично выглядящий лод, который не будет резко выделятся на фоне более детализированнх патчей.
2 комментария:
пожалуйста пиши ещё, очень интересно и нужно
Браво, мне кажется, это отличная фраза
Отправить комментарий