2016-03-05 15 views
0

Я работаю на местности и должен был остановиться. Я программирую на C++, DirectX9 и HLSL, чтобы создать ландшафт, но я также использую карты высот, которые являются BMP-форматом. Я загружаю информацию из карты высот как на стороне C++, так и на стороне шейдера. На стороне C++ я использую D3DXCreateTextureFromFile и поверхности (D3DXSaveSurfaceToFile) для загрузки информации, тогда как на стороне шейдера я использую tex2Dlod для загрузки моей информации для вершин местности. Эти два получают разные значения из карты высоты. После дальнейших исследований я узнал, что функция tex2Dlod использует карты mip (все еще не понимают их полностью) для загрузки информации.Карта высоты местности - C++/Vertex Shader имеет разные значения

Может кто-нибудь знать, как получить два числа, чтобы соответствовать? Если вам нужна дополнительная информация (цифры, картинки или что-то еще), просто дайте мне знать!

Спасибо!

ответ

0

Первый вопрос, почему вы придерживаетесь DX9, что является причиной? Я бы понял, по крайней мере, DX10. Можете ли вы показать мне код HLSL?

tex2Dlod - это функция выборки текстуры, которая принимает два параметра. 1. sampler2D 2. float4 (координаты текстуры).

Actualy tex2dlod - это функция, которая делает отображение текстур mip (детализация текстур) и офсетное преобразование текселя. Но полностью я не понял, где проблема? Может ли быть более конкретным?

И, кстати, полная функция поддерживается только в шейдерной модели 3.0.