hlsl — Карта высоты местности — C ++ / Vertex Shader имеет разные значения

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

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

Спасибо!

0

Решение

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

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

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

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

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]