![]() |
Constructive solid geometry
имеется множество плоскостей, заданные позицией и нормалью.
как по ним построить меш?? мне известны формулы нахождения точки относительно плоскости и попадания луча по плоскости но все равно ни фига не могу придумать) |
Ответ: Constructive solid geometry
и необязательно использовать извращенские словечки если можно просто сказать "несколько","о которых известны: их место и перпендикуляр","3д-модель","я знаю" и тд.
|
Ответ: Constructive solid geometry
Цитата:
очевидно, плоскость разбивает пространство на два полупространства. симплекс в трехмерном пространстве - тетраэдр (4 вершины, 4 грани, 6 ребер). минимальные входные данные - 4 плоскости. и то не факт, что они дадут замкнутую фигуру. вообще CSG - это немного не про то. это когда мы применяем булевы операции (and, or , xor) к уже готовым примитивам. можно хранить в виде дерева, где узлы - операции, листья - примитивы. обходим дерево - получаем результат. вобще тема довольно интересная, на КРИ был доклад харьковчан из ActionForms (Chasm, Вивисектор). |
Ответ: Constructive solid geometry
Цитата:
а 3д модель не синоним меша) "я знаю" вообще ни к чему) Цитата:
Цитата:
я просто с начала читал вот это: www.leadwerks.com/files/csg.pdf а там про булеаны ничего не написано (или мало написано не помню уже). потом я смотрел формат файлов хаммера а там именно все солиды описываются плоскостями коих неограниченное кол-во. |
Ответ: Constructive solid geometry
Цитата:
в ранних демках OpenGL я давно видел примеры CSG с помощью skissor-test или stensil даже использовался. но лучше конечно написать функции: объединения, пересечения и разности мешей. подозреваю, что меши лучше хранить в editor-friendly формате, т.е. с adjacency, нормалями, ребрами. определить операции split/merge. и т.д. и т.п. Цитата:
даже тут лучше написано: http://en.wikipedia.org/wiki/Constru...solid_geometry |
Ответ: Constructive solid geometry
решил найти точки пересечения плоскостей, отсеять те, который за пределами других и соединить.
для поиска точки пересечения нашёл такое: http://algolist.manual.ru/maths/geom...ct/3planes.php однако случилась проблема: ![]() |
Ответ: Constructive solid geometry
Цитата:
|
Ответ: Constructive solid geometry
p точка на плоскости, как бы середина фейса.
d описаны по ссылке: N1 . p = d1 N2 . p = d2 N3 . p = d3 т.е. нормаль умноженный на коорды |
Ответ: Constructive solid geometry
так что она общая для трех плоскостей получается? тогда это и есть пересечение.
наверное корректнее было бы записать: p1, p2, p3, т.е. для каждой плоскости своя. |
Ответ: Constructive solid geometry
да корявая какая-то формула
|
Ответ: Constructive solid geometry
Mr_F_
не пытайтесь выдать свой субъективизм за ИстинноВерныйПрограммерскийСленг: во-первых его не существует, во-вторых уж не вам его устанавливать ;) |
Ответ: Constructive solid geometry
самое нормальное что получилось, когда я добыл на блицбасик форуме функцию разрезания меша плоскостью, сделанную Лидверксом и создавал меши описанные плоскостями путём разрезания ими куба
НО функция весьма какая-то стрёмная, есть резать уже ранее отрезаный объект то всё глюки начинаются, треугольники пропадают плюс ну очень кривая сетка функция: http://www.blitzbasic.com/Community/...hp?topic=35294 |
Часовой пояс GMT +4, время: 20:09. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot