Тема: Управление отображением объекта
Возможно ли указать для объекта функцию в которую приходили бы координаты полигонов которые надо отрисовать, а функция бы отдавала текстуры?
Информационный портал для профессионалов в области САПР
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Форумы CADUser → Программирование → ObjectARX → Управление отображением объекта
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Возможно ли указать для объекта функцию в которую приходили бы координаты полигонов которые надо отрисовать, а функция бы отдавала текстуры?
Переведи. А лучше задай вопрос здесь. Там есть вероятность получить ответ от технических специалистов Autodesk. Только нужно четко сформулировать свой вопрос.
Попытаюсь перевести. Допустим есть паралепипед. Определенный параметр материала, из которого сделан параллепипед, неравномерен по объему (например плотность). В приложении 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 я дел неимел никогда.
В автокад я тоже не профессионал и для меня некоторые понятия неизвестны.
Спасибо
Скажу сразу с objectarx я дел неимел никогда.
Это видно сразу. Всё что ты написал к AutoCAD неприменимо. Начни с изучения и того и другого.
Я так понимаю, что неприменимы только последние пункты 2 и 3? Или первые три тоже?
Просто прежде чем взяться за изучение хотелось бы знать о теоретической возможности первой части и второй.
И еще сразу вопрос.
Вообще что то подобное можно сделать с objectarx (любым способом), или это вообще невыполнимо?
Ничего невозможного нет, но всё будет работать не так, как указано. А чтобы понять как нужно изучить AutoCAD и ObjectARX.
Конечно не так. Я описал "как я себе это вижу" - только для того чтобы вы поняли суть задачи (расшифровал как вы и просили).
Насчет ввода параметров я думаю разберусь(про рантайм базу данных объектов представление есть).
Меня волнует вторая часть задачи. Как сделать визуализацию? Я знаю, что можно переключаться между видами (реалистичный и.т.д). Что можно накладывать текстуры и выбирать материалы. Дело в этом? Задача реализума только этим путем или есть другие?
Вы хоть намекните в какую сторону копать и что именно изучать в objectarx и autocad? А то совет "нужно изучить AutoCAD и ObjectARX", звучит так, что я потрачу пол года только на изучение автокада, и еще пол года или больше на objectarx. И есть вероятность, что изучу не те аспекты которые нужны.
Я знаю, что можно переключаться между видами (реалистичный и.т.д). Что можно накладывать текстуры и выбирать материалы. Дело в этом? Задача реализума только этим путем или есть другие?
Я бы этим путем не шёл. API работы с текстурами не самое простое и оптимальное. Не уверен, что AutoCAD вообще лучший инструмент для такой задачи. И (IMHO) если уж такую задачу решать в AutoCAD, то через Custom Entity.
звучит так, что я потрачу пол года только на изучение автокада, и еще пол года или больше на objectarx.
Ну это очень оптимистичные прогнозы... ;)
вставлю и свои 5 копеек :)
"Автокад" при этом разбивает объект на "маленькие" плоскости, как это делается обычно при рендеринге, и спрашивает у func для каждой из маленьких плоскостей объекта in_obj с координатами (in1,in2,in3), координаты текстуры hTex: (out1,2,3). И потом использует эти текстуры чтобы отрисовать объект.
это попахивает блочной моделью.
грубо говоря, суть ее в том, что, есть тело, разбитое на определенные "кубики". у каждого кубика свое значение (возможно несколько значений для разных параметров. это не суть важно). дальше мы делаем срез как угодно, хоть верликально, хоть по диагонали. короче говоря, сечем "плоскостью". и хотим получить сам срез в виде графика, разбирого по цветам или по текстурам (это опять же не важно). либо секанули плоскостью (разбили объект на 2\3\4...n частей, если "плоскость" у нас является плоскостью только по ее имени, а на самом деле выгибается как угодно) и говорим, этот кусок оставь, а остальные спрячь.
в этом случае можно обойтись и без своего объекта, а работать именно с кубиками. данные для них грузить из базы, файла, да хоть из головы :):):). гладкие края самой формы не обещаю, хотя все зависит от размеров "кубиков" и приближения.
ну и набор команд, которые будут обрабатывать действия с кубиками (прятать\показывать, красить цветами, менять размер этих кубиков, возможно укрупнять зоны (если куча соседних кубиков имеют одинаковое значения параметра), разбивать кубик на несколько внутренних подкубиков, и самое важное, делать эти кубики даже там, где нет никаких параметров (интерполяция, экстраполяция))
Ну это очень оптимистичные прогнозы...
это да :):):). хотя, все зависит от упорства и мотивации
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Форумы CADUser → Программирование → ObjectARX → Управление отображением объекта
Форум работает на PunBB, при поддержке Informer Technologies, Inc