![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как сделать выделение треугольников с учётом видимости?
Тем © (2006-01-01 04:30:00)То есть есть массив треугольников в 3D. Есть четырёхугольная область выделения на камере. Положение самой камеры и нормаль. Надо посчитать какие треугольники видны, а какие нет. И выделить только те, которые видны. Как это можно сделать?
GLScene
Это для игрового редактора.
Мимоходом (2006-01-12 01:25:00) [1]Удалено модератором
A22 (2006-01-11 14:44:00) [2]проблема перекрытия треугольника другими треугольниками решается с помощью Z-буфера. вообще, руками все это делать, конечно, неудобно... хм, могу предложить еще вариант выбора цветом - рендери каждый теругольник своим цветом, потом читай значение пиксела под курсором. по этому цвету получишь треугольник.
четсно говоря, решений разных множество. нужно под конкретную задачу смотреть
Google (2006-01-11 01:44:00) [3]Удалено модератором
Кефир87 (2006-01-10 16:49:00) [4]Octree алгоритм хороший. Но вот реализации могут быть кривыми... Но причем тут выделение треугольников?!
Тем (2006-01-10 03:11:00) [5]По ходу исследования проблемы обнаружил что в Octree бывают дырки.
Раньше думал, что это точный алгоритм.
Кефир87 (2006-01-08 20:03:00) [6]Как в ГЛСцене? Не знаю и знать не хочу. Как в чистом OpenGL - КРАСНОВ!
Тем (2006-01-08 07:02:00) [7]Или просто не знает?
Тем (2006-01-07 06:05:00) [8]А без пантов, кто нибудь объяснить может?
Дельфи-мастер (2006-01-06 04:50:00) [9]Удалено модератором
Дельфи-мастер (2006-01-05 04:13:00) [10]Удалено модератором
Кефир87 (2006-01-03 13:30:00) [11]А я бы послал читать Краснова. Там созданию редактора целая глава посвящена... Но не судьба 8)
XProger (2006-01-03 06:34:00) [12]Тем, если бы в твоём вопросе не было слова GLScene - я бы на него ответил ;)
Тем (2006-01-03 04:58:00) [13]A22 © (02.01.06 20:38) [1]
>
> берем треугольники, для которых dot( normal, -camera_view_vector)
> > 0, потом строим по области выделения новый фрустум (6
> плоскостей отсечения) и проверям треугольники на попадание
> во фрустум. можно ускорить, если для смежных треугольников
> не проверять по нескольку раз общие вершины, а запоминать
> результат проверки во временном буфере.
Не понял. Как определить виден конкретный треугольник или закрывается другими?
Он может быть виден так, что и ни одной его вершины не видно, а только часть плоскости.
A22 (2006-01-02 20:38:00) [14]берем треугольники, для которых dot( normal, -camera_view_vector) > 0, потом строим по области выделения новый фрустум (6 плоскостей отсечения) и проверям треугольники на попадание во фрустум. можно ускорить, если для смежных треугольников не проверять по нескольку раз общие вершины, а запоминать результат проверки во временном буфере.