Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 2004.04.25;
Скачать: [xml.tar.bz2];

Вниз

Уменьшение числа полигонов на модели   Найти похожие ветки 

 
MrAngel   (2003-10-31 00:16) [0]

Собственно сабж. Есть модель, любая, человека, собаки, ящика и пр.

Таких моделей предполагается разместить на сцене перед камерой около 2000 (если не больше). Причём будут такие ситуации, когда необходимо отобразить все эти модели (без клипинга и прочих вещей) одновременно!!! Однако модели будут находится на разном расстоянии от камеры, соответственно и хочется более дальние модели выводить (в зависимости от расстояния) с меньшим количеством полигонов.
Сразу оговорюсь - это должно обрабатываться в реальном времени, ситуации со слайд шоу категорически отвергаются и не подходят :-)

Есть ли какие нибудь существующие наборы алгоритмов, утилит, модулей для дельфи, которые могли бы мне в этом помоч. Принимается всё.

Заранее спасибо.


 
Ландграф Павел ©   (2003-10-31 12:06) [1]

Есть такой алгоритм, уменьшения числа полигонов на расстоянии... вот только где я этот пример видел... там под Dx8.1 было - уменьшение числа полигонов у поверхности земли.
Вспомнил! ROAM algorithm by Henri Hakl
http://www.cs.sun.ac.za/~henri/


 
Sapersky ©   (2003-10-31 17:46) [2]

В D3DX (библиотеке утилит для Direct3D, имеется в комплекте с заголовками), начиная с DX8, есть средства уменьшения (и увеличения) количества полигонов в модели. Работают не всегда хорошо - модель, насколько я понял, должна быть представлена одним субмешем с усреднёнными по граням нормалями.


 
MrAngel   (2003-10-31 20:33) [3]

OK спасибо. А как быть если работаю на OGL ?


 
Sapersky ©   (2003-11-01 00:20) [4]

> А как быть если работаю на OGL ?

Посмотреть на www.opengl.org (или как он называется) :)

На Delphi3D есть кое-что по теории:

http://www.delphi3d.net/articles.php

см. статью "Level Of Detail (LOD)".

Вообще же, как показывает практика, лучше заранее сгенерировать все лоды в 3DMax или ещё где и просто отображать нужный. Существует движок, в котором детализация моделей рассчитывается динамически - забыл как называется, но производства Shiny, на нём работают Messiah и Sacrifice (возможно, и Matrix - точно не в курсе). Так вот, результат на глаз - весьма посредственный (смотрел демо Sacrifice). То, что полигоны добавляются и урезаются - заметно, в нехорошем смысле, т.е. модель при этом дёргается, особенно с учётом того, что добавление и урезание часто происходят одновременно (ну или такое создаётся впечатление). Перемудрили в Shiny малость... но зато кака-а-я технология! :)
Хотя сейчас (Sacrifice когда ещё была), может, и довели до ума.


 
MrAngel   (2003-11-01 00:47) [5]

Я бы рад делать предварительные лоды, но ситуация такова, что заранее не известно какие вообще будут модели (предполагается их разработка на стороне, например пользователя/игрока). Но тем не менее спасибо за наводку.



Страницы: 1 вся ветка

Форум: "Игры";
Текущий архив: 2004.04.25;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.04 c
11-1063861417
AndrewA
2003-09-18 09:03
2004.04.25
Несоответствие в TrimLeft


7-1077707481
CrytoGen
2004-02-25 14:11
2004.04.25
проблемы с CreateProcessAsUser


1-1081142205
Comp
2004-04-05 09:16
2004.04.25
Произвольная форма окна


3-1080714835
russko
2004-03-31 10:33
2004.04.25
Вопрос по DBGridEh


3-1080568061
Zelius
2004-03-29 17:47
2004.04.25
Как правильно отвязать TADODataSet от сервера?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский