Используя Flash 11 RC1 с новым API Molehill, я хотел бы включить отсечение задней поверхности. Документация по бета-версии довольно расплывчата, но пример подразумевает, что Molehill хочет, чтобы треугольники, обращенные вперед, вращались против часовой стрелки, что вполне нормально.
Но когда мои многоугольники закручиваются против часовой стрелки, я получаю прямо противоположное поведение — другими словами, как будто вопреки своим собственным примерам Molehill ожидает, что обращенные вперед треугольники закручиваются по часовой стрелке. Поскольку в документации никогда прямо не указывается, какая обмотка правильная, я в тупике.
Я не хочу просто переворачивать все свои треугольники, пока они не будут выглядеть правильно, прежде чем я на 100% узнаю, чего на самом деле хочет Кротовина, поскольку это имеет хорошие шансы скрыть фундаментальное недоразумение.
Я использую простую перспективную проекцию (примечание относительно .transpose() ниже: поскольку copyRawDataFrom ожидает данные в порядке столбцов, и мне не нравилось, как это выглядит в коде, я решил просто ввести его в порядке строк и впоследствии транспонировать матрицу - так подайте на меня в суд :P):
var y:Number = 1.0 / Math.tan(pFOV / 2.0);
var x:Number = y / pAspectRatio;
_projectionMatrix.copyRawDataFrom(new<Number>[
x , 0 , 0 , 0,
0 , y , 0 , 0,
0 , 0 , pFar/(pNear-pFar) , pFar*pNear/(pNear-pFar),
0 , 0 , -1 , 0
]);
_projectionMatrix.transpose();
Любые подсказки?