Могу ли я создать тайловый движок в пиксельном шейдере?

Я пытаюсь создать тайловый движок, используя пиксельный шейдер и две текстуры. Одна текстура будет содержать тайлсет, а другая — карту.

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

Каков наилучший способ прочитать эти данные пикселей?

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

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

Есть предположения?

(используя моногейм для метро, ​​поэтому дх уровень 9_1)


person Jason    schedule 29.10.2012    source источник


Ответы (1)


Если вы используете tex2D и передаете (x + 0.5) / width и (y + 0.5) / height, вы должны получить точное значение пикселя в (x, y). Дополнительная информация здесь: Основы текстурной памяти-tex2D

person Elle    schedule 14.05.2013