Я все еще работаю над моим "javascript 3d engine" ( ссылка внутри stackoverflow ).Сначала все мои многоугольники были гранями кубов, поэтому сортировка их по среднему Z работала нормально.но теперь я «эволюционировал» и хочу нарисовать свои полигоны (которые могут содержать более 4 вершин) в правильном порядке, а именно те, кто находится рядом с камерой, будут нарисованы последними.
в основномЯ знаю, как вращать их и «перспективно» изменять их размер в 2D, но не знаю, как нарисовать их в правильном порядке.
просто чтобы уточнить:
//my 3d shape = array of polygons
//polygon = array of vertices
//vertex = point with x,y,z
//rotation is around (0,0,0) and my view point is (0,0,something) I guess.
может кто-нибудь помочь?
ps: некоторые «ловить фразы», которые я придумал, в поисках решения: z-буферизация, приведение лучей (?!), уравнения плоскости, вектор представления и т. д. - угадайте, янужен простой, чтобы понять ответ, поэтому я и спросил этот.спасибо.
p.s2: я не особо беспокоюсь о перекрывающихся или пересекающихся многоугольниках ... так что, возможно, алгоритм художника действительно может быть хорошим.но: что именно?Как я могу определить расстояние многоугольника?у многоугольника много точек.