Я работал над созданием икосферы, и почти закончил с этим.
Сейчас я пытаюсь сделать так, чтобы любые треугольники, не обращенные к камере, не добавлялись в список рисования, потому что я имею дело с большим количеством треугольников и заполняюбуфер вершин.Мне удалось сделать так, чтобы треугольники, обращенные к исходному положению камеры, были скрыты (см. Прикрепленные изображения), но скрытые треугольники не обновляются, когда я перемещаю камеру.
Вот два изображения, показывающие это:
http://i41.photobucket.com/albums/e262/cstgirllover/Cho/IcosphereCulledFront.png
http://i41.photobucket.com/albums/e262/cstgirllover/Cho/IcosphereCulledSide.png
Я использовал (псевдо) код с этого сайта, чтобы помочь мне продвинуться дальше:
http://decadeengine.blogspot.com/2011/03/remove-back-facing-patches-before.html
но я не могу найти соответствующий код для этого:
p_pGraphics->get_Matrix(eModelView)
Это последний фрагмент кода на странице, который устраняет проблему, с которой я столкнулся.,
Мой окружающий код выглядит следующим образом:
public float isFacing(Vector3 pos1, Vector3 pos2, Vector3 pos3, Camera dotCamera)
{
Vector3 temp1 = CalculateNormal(pos1, pos2, pos3);
float dotp = Vector3.Dot(temp1, dotCamera.GetDirection * _________);
return dotp;
}
Эквивалентный код необходимо вводить после "dotCamera.GetDirection *"