Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Blitz3D > 3D-программирование

3D-программирование Вопросы, касающиеся программирования 3D мира

Ответ
 
Опции темы
Старый 23.05.2009, 02:49   #1
Mr_F_
Терабайт исходников
 
Аватар для Mr_F_
 
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений
(для 6,051 пользователей)
Constructive solid geometry

имеется множество плоскостей, заданные позицией и нормалью.

как по ним построить меш??
мне известны формулы нахождения точки относительно плоскости и попадания луча по плоскости но все равно ни фига не могу придумать)
__________________
бложик | geom.io | твиттер | faded | демо 1 2 | роботы | лайтмаппер
(Offline)
 
Ответить с цитированием
Старый 23.05.2009, 03:19   #2
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: Constructive solid geometry

и необязательно использовать извращенские словечки если можно просто сказать "несколько","о которых известны: их место и перпендикуляр","3д-модель","я знаю" и тд.
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Старый 23.05.2009, 13:17   #3
ffinder
Дэвелопер
 
Аватар для ffinder
 
Регистрация: 10.09.2007
Сообщений: 1,442
Написано 793 полезных сообщений
(для 1,460 пользователей)
Ответ: Constructive solid geometry

Сообщение от Mr_F_ Посмотреть сообщение
имеется множество плоскостей, заданные позицией и нормалью.
как по ним построить меш??
мне известны формулы нахождения точки относительно плоскости и попадания луча по плоскости но все равно ни фига не могу придумать)
здравый смысл подсказывает, что может получиться не mesh, а triangle soup в лучшем случае, или вобще противоречивый результат, который не имеет смысла.

очевидно, плоскость разбивает пространство на два полупространства.
симплекс в трехмерном пространстве - тетраэдр (4 вершины, 4 грани, 6 ребер).
минимальные входные данные - 4 плоскости. и то не факт, что они дадут замкнутую фигуру.

вообще CSG - это немного не про то. это когда мы применяем булевы операции (and, or , xor) к уже готовым примитивам. можно хранить в виде дерева, где узлы - операции, листья - примитивы. обходим дерево - получаем результат.
вобще тема довольно интересная, на КРИ был доклад харьковчан из ActionForms (Chasm, Вивисектор).
(Offline)
 
Ответить с цитированием
Старый 23.05.2009, 14:14   #4
Mr_F_
Терабайт исходников
 
Аватар для Mr_F_
 
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений
(для 6,051 пользователей)
Ответ: Constructive solid geometry

"несколько","о которых известны: их место и перпендикуляр","3д-модель","я знаю" и тд.
фейл) перпендикуляр менее программерски звучит чем нормаль)
а 3д модель не синоним меша)
"я знаю" вообще ни к чему)
здравый смысл подсказывает, что может получиться не mesh, а triangle soup в лучшем случае
это в худшем. понятное дело что должна присутствовать логика в построение трианглов.
вообще CSG - это немного не про то. это когда мы применяем булевы операции (and, or , xor) к уже готовым примитивам. можно хранить в виде дерева, где узлы - операции, листья - примитивы. обходим дерево - получаем результат.
но рендерить то эти примитивы тоже необходимо.
я просто с начала читал вот это:
www.leadwerks.com/files/csg.pdf
а там про булеаны ничего не написано (или мало написано не помню уже).
потом я смотрел формат файлов хаммера а там именно все солиды описываются плоскостями коих неограниченное кол-во.
__________________
бложик | geom.io | твиттер | faded | демо 1 2 | роботы | лайтмаппер
(Offline)
 
Ответить с цитированием
Старый 23.05.2009, 15:13   #5
ffinder
Дэвелопер
 
Аватар для ffinder
 
Регистрация: 10.09.2007
Сообщений: 1,442
Написано 793 полезных сообщений
(для 1,460 пользователей)
Ответ: Constructive solid geometry

Сообщение от Mr_F_ Посмотреть сообщение
но рендерить то эти примитивы тоже необходимо.
так а что мешает?
в ранних демках OpenGL я давно видел примеры CSG с помощью skissor-test или stensil даже использовался.
но лучше конечно написать функции: объединения, пересечения и разности мешей.
подозреваю, что меши лучше хранить в editor-friendly формате, т.е. с adjacency, нормалями, ребрами. определить операции split/merge. и т.д. и т.п.
Сообщение от Mr_F_ Посмотреть сообщение
я просто с начала читал вот это:www.leadwerks.com/files.csg.pdf
невнятный пейпер.
даже тут лучше написано: http://en.wikipedia.org/wiki/Constru...solid_geometry
(Offline)
 
Ответить с цитированием
Старый 23.05.2009, 16:08   #6
Mr_F_
Терабайт исходников
 
Аватар для Mr_F_
 
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений
(для 6,051 пользователей)
Ответ: Constructive solid geometry

решил найти точки пересечения плоскостей, отсеять те, который за пределами других и соединить.
для поиска точки пересечения нашёл такое:
http://algolist.manual.ru/maths/geom...ct/3planes.php

однако случилась проблема:
__________________
бложик | geom.io | твиттер | faded | демо 1 2 | роботы | лайтмаппер
(Offline)
 
Ответить с цитированием
Старый 23.05.2009, 16:38   #7
ffinder
Дэвелопер
 
Аватар для ffinder
 
Регистрация: 10.09.2007
Сообщений: 1,442
Написано 793 полезных сообщений
(для 1,460 пользователей)
Ответ: Constructive solid geometry

Сообщение от Mr_F_ Посмотреть сообщение
решил найти точки пересечения плоскостей, отсеять те, который за пределами других и соединить.
для поиска точки пересечения нашёл такое:
http://algolist.manual.ru/maths/geom...ct/3planes.php
что такое p, d1, d2, d3 в твоей задаче?
(Offline)
 
Ответить с цитированием
Старый 23.05.2009, 16:52   #8
Mr_F_
Терабайт исходников
 
Аватар для Mr_F_
 
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений
(для 6,051 пользователей)
Ответ: Constructive solid geometry

p точка на плоскости, как бы середина фейса.
d описаны по ссылке:
N1 . p = d1
N2 . p = d2
N3 . p = d3

т.е. нормаль умноженный на коорды
__________________
бложик | geom.io | твиттер | faded | демо 1 2 | роботы | лайтмаппер
(Offline)
 
Ответить с цитированием
Старый 23.05.2009, 17:10   #9
ffinder
Дэвелопер
 
Аватар для ffinder
 
Регистрация: 10.09.2007
Сообщений: 1,442
Написано 793 полезных сообщений
(для 1,460 пользователей)
Ответ: Constructive solid geometry

так что она общая для трех плоскостей получается? тогда это и есть пересечение.
наверное корректнее было бы записать: p1, p2, p3, т.е. для каждой плоскости своя.
(Offline)
 
Ответить с цитированием
Старый 23.05.2009, 18:35   #10
Mr_F_
Терабайт исходников
 
Аватар для Mr_F_
 
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений
(для 6,051 пользователей)
Ответ: Constructive solid geometry

да корявая какая-то формула
__________________
бложик | geom.io | твиттер | faded | демо 1 2 | роботы | лайтмаппер
(Offline)
 
Ответить с цитированием
Старый 23.05.2009, 21:14   #11
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: Constructive solid geometry

Mr_F_
не пытайтесь выдать свой субъективизм за ИстинноВерныйПрограммерскийСленг:
во-первых его не существует,
во-вторых уж не вам его устанавливать
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Старый 24.05.2009, 13:47   #12
Mr_F_
Терабайт исходников
 
Аватар для Mr_F_
 
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений
(для 6,051 пользователей)
Ответ: Constructive solid geometry

самое нормальное что получилось, когда я добыл на блицбасик форуме функцию разрезания меша плоскостью, сделанную Лидверксом и создавал меши описанные плоскостями путём разрезания ими куба

НО
функция весьма какая-то стрёмная, есть резать уже ранее отрезаный объект то всё глюки начинаются, треугольники пропадают

плюс ну очень кривая сетка

функция:
http://www.blitzbasic.com/Community/...hp?topic=35294
__________________
бложик | geom.io | твиттер | faded | демо 1 2 | роботы | лайтмаппер
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
engines benchmark. big static geometry HolyDel Болтовня 10 21.03.2009 19:59
The Geometry Junkyard moka Болтовня 4 17.11.2006 17:24


Часовой пояс GMT +4, время: 00:31.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com