Я разрабатываю изометрическую игру в Java2D. То есть обратите внимание, что у меня нет прямого доступа к аппаратным пиксельным шейдерам (программные пиксельные шейдеры реального времени непрактичны. Я могу выполнить один проход для каждой текстуры сущности без заметного удара по производительности)
Я знаю, что типичным методом было бы каким-то образом закодировать глубину отдельных пикселей в буфере глубины и посмотреть его. Однако я не знаю, как я могу сделать это эффективно в Java2D. Как мне сохранить буфер глубины? Как мне отфильтровать альфу в изображении? И т.п.
До сих пор я просто переворачивал матрицу проекций, которую использую для вычисления тайловых координат. Однако это не работает, когда у вас есть объекты, которые отображаются за пределами этих плиток.
Другим методом, который я рассматривал, было использование цветовой карты, однако у меня с этим те же проблемы, что и с буфером глубины (и если я смогу заставить работать буфер глубины, я бы предпочел использовать его).
Вот изображение того, с чем я работаю:
Java.awt.Color
s имеют альфа-значение... поэтому кажется, что большая часть работы уже сделана, если вы сначала рисуете плитки, которые находятся за другими плитками. - person clwhisk   schedule 11.09.2013