Тема: Управление отображением объекта

Возможно ли указать для объекта функцию в которую приходили бы координаты полигонов которые надо отрисовать, а функция бы отдавала текстуры?

(изменено: Александр Ривилис, 28 октября 2013г. 16:33:53)

Re: Управление отображением объекта

Переведи. А лучше задай вопрос здесь. Там есть вероятность получить ответ от технических специалистов Autodesk. Только нужно четко сформулировать свой вопрос.

Re: Управление отображением объекта

Попытаюсь перевести. Допустим есть паралепипед. Определенный параметр материала, из которого сделан параллепипед, неравномерен по объему (например плотность). В приложении arx возможно определить значение этого параметра в каждой точке объёма параллепипеда.

Задача заключается в том, чтобы отобразить разными цветами (возможно градиентом) значение этого параметра "по объему"
"По объему" - это значит что если сделать сечение, (возможно не плоское), то картина на срезе поменяется, но при этом должна отражать реальное значение параметра определённым цветом.

Как я себе это вижу.
Приложение arx регистрирует
1) некую команду активации, например showparam
2) добавляет к объектам, выбранных по какому-то критерию (для простоты пусть он будет один), возможность ввода определенных свойств.
Когда пользователь вводит команду showparam приложение arx:
1) Считывает эти свойства объекта и считает значение параметра для определенных точек внутри объекта
2) Регистрирует для этого объекта callback, примерно с таким прототипом:
void func(
hobj in_obj,
3dp in1, 3dp in2, 3dp in3,
3dp& out1, 3dp& out2, 3dp& out3,
hTexture &hTex)

3) и говорит автокаду перерисовать объект

"Автокад" при этом разбивает объект на "маленькие" плоскости, как это делается обычно при рендеринге, и спрашивает у func для каждой из маленьких плоскостей объекта in_obj с координатами (in1,in2,in3), координаты текстуры hTex: (out1,2,3). И потом использует эти текстуры чтобы отрисовать объект.

Скажу сразу с objectarx я дел неимел никогда.
В автокад я тоже не профессионал и для меня некоторые понятия неизвестны.

Спасибо

Re: Управление отображением объекта

letopisez пишет:

Скажу сразу с objectarx я дел неимел никогда.

Это видно сразу. Всё что ты написал к AutoCAD неприменимо. Начни с изучения и того и другого.

Re: Управление отображением объекта

Я так понимаю, что неприменимы только последние пункты 2 и 3? Или первые три тоже?
Просто прежде чем взяться за изучение хотелось бы знать о теоретической возможности первой части и второй.

Re: Управление отображением объекта

И еще сразу вопрос.
Вообще что то подобное можно сделать с objectarx (любым способом), или это вообще невыполнимо?

Re: Управление отображением объекта

Ничего невозможного нет, но всё будет работать не так, как указано. А чтобы понять как нужно изучить AutoCAD и ObjectARX.

Re: Управление отображением объекта

Конечно не так. Я описал "как я себе это вижу" - только для того чтобы вы поняли суть задачи (расшифровал как вы и просили).
Насчет ввода параметров я думаю разберусь(про рантайм базу данных объектов представление есть).
Меня волнует вторая часть задачи. Как сделать визуализацию? Я знаю, что можно переключаться между видами (реалистичный и.т.д). Что можно накладывать текстуры и выбирать материалы. Дело в этом? Задача реализума только этим путем или есть другие?
Вы хоть намекните в какую сторону копать и что именно изучать в objectarx и autocad? А то совет "нужно изучить AutoCAD и ObjectARX", звучит так, что я потрачу пол года только на изучение автокада, и еще пол года или больше на objectarx. И есть вероятность, что изучу не те аспекты которые нужны.

Re: Управление отображением объекта

letopisez пишет:

Я знаю, что можно переключаться между видами (реалистичный и.т.д). Что можно накладывать текстуры и выбирать материалы. Дело в этом? Задача реализума только этим путем или есть другие?

Я бы этим путем не шёл. API работы с текстурами не самое простое и оптимальное. Не уверен, что AutoCAD вообще лучший инструмент для такой задачи. И (IMHO) если уж такую задачу решать в AutoCAD, то через Custom Entity.

letopisez пишет:

звучит так, что я потрачу пол года только на изучение автокада, и еще пол года или больше на objectarx.

Ну это очень оптимистичные прогнозы...  ;)

Re: Управление отображением объекта

вставлю и свои 5 копеек :)

"Автокад" при этом разбивает объект на "маленькие" плоскости, как это делается обычно при рендеринге, и спрашивает у func для каждой из маленьких плоскостей объекта in_obj с координатами (in1,in2,in3), координаты текстуры hTex: (out1,2,3). И потом использует эти текстуры чтобы отрисовать объект.

это попахивает блочной моделью.
грубо говоря, суть ее в том, что, есть тело, разбитое на определенные "кубики". у каждого кубика свое значение (возможно несколько значений для разных параметров. это не суть важно). дальше мы делаем срез как угодно, хоть верликально, хоть по диагонали. короче говоря, сечем "плоскостью". и хотим получить сам срез в виде графика, разбирого по цветам или по текстурам (это опять же не важно). либо секанули плоскостью (разбили объект на 2\3\4...n частей, если "плоскость" у нас является плоскостью только по ее имени, а на самом деле выгибается как угодно) и говорим, этот кусок оставь, а остальные спрячь.

в этом случае можно обойтись и без своего объекта, а работать именно с кубиками. данные для них грузить из базы, файла, да хоть из головы :):):). гладкие края самой формы не обещаю, хотя все зависит от размеров "кубиков" и приближения.
ну и набор команд, которые будут обрабатывать действия с кубиками (прятать\показывать, красить цветами, менять размер этих кубиков, возможно укрупнять зоны (если куча соседних кубиков имеют одинаковое значения параметра), разбивать кубик на несколько внутренних подкубиков, и самое важное, делать эти кубики даже там, где нет никаких параметров (интерполяция, экстраполяция))


Ну это очень оптимистичные прогнозы...

это да :):):). хотя, все зависит от упорства и мотивации