6 / 6 / 1
Регистрация: 08.12.2009
Сообщений: 58
|
|
1 | |
Экпорт модели из 3D Max25.03.2010, 17:12. Показов 2721. Ответов 12
Метки нет (Все метки)
Здрасьте.
Вощем такой вопрос у меня. Экспортирую значица 3d модель из Маха в ОпенГЛ (через .obj). Но в OpenGL почему-то модель начинает как-то странно мерцать или, скорее, поблёскивать(особенно, если двигать "камеру"). По ней какие-то полупрозрачные полосы идут и иногда прыгают по поверхности небольшие бугорки. Вроде бы на глюки из-за нехватки аппаратной мощности непохоже (ИМХО). Нормали считываются из .obj-файла, мне кажется, что корректно, хотя фиг знает... Как вы думаете, в чём может быть проблема? P.S. Чёрт, дико извиняюсь за название темы, перепутал поле ввода...
0
|
25.03.2010, 17:12 | |
Ответы с готовыми решениями:
12
Даны векторы a и b , состоящие из семи компонентов. Найти max(max(Ai), max(Bi), max(¦Ai-Bi¦), max(Ai+Bі),1) Фрактальные 3D-модели в 3Ds Max, Houdini или Cinema 4D Задать значения вещественным элементам массивов A(6),B(3),C(10) и вычислить Y=max(max(A),max(B),max(C) Даны действительные числа A, B, C. Получить max(a,a+b)+max(a,b+c,a+b) \ 1+max(ab,bc)+max(a+bc,15,ac) |
25.03.2010, 18:54 | 2 |
Мне тоже так кажется...
Tom Vonzet, 90% виноват загрузчик ОГЛа. Думаю стОит начать искать ошибки там. Хотя может быть и экспортёр подтраивает. Где брал загрузчик? SourceForge? Там ребята много чего делают и бесплатно, но качество не 100%. Впринципе как и всё ПО =)
1
|
6 / 6 / 1
Регистрация: 08.12.2009
Сообщений: 58
|
|
25.03.2010, 19:14 [ТС] | 3 |
0
|
6 / 6 / 1
Регистрация: 08.12.2009
Сообщений: 58
|
||||||
25.03.2010, 20:39 [ТС] | 5 | |||||
Э... сам писал как бэ.
Нда, я щас ещё покрутил модельку немного, кажется, вы правы. Пойду искать ошибки в считывании нормалей. Хотя не знаю, где я мог ошибиться, там же всё вроде ясно как день... Добавлено через 1 час 5 минут snake32, как думаете, вот это из-за нормалей? Я щас порылся в коде... да вроде бы и негде ошибиться... Сначала считываем все координаты поверхности, координаты нормалей, текстурн. координаты, грани (индексы координат) в массивы Vertices, Normals, TexVertices и Faces соответственно. Потом, с помощью следующего кода, их прорисовываем:
0
|
25.03.2010, 22:01 | 6 |
Фиг знает.... так не разберёшь с одной картикой.... тут и без нормалей по-моему, касяки есть...
Похоже что Вы напутали что-то с передними и задими гранями. Попробуйте выключите cullface и свет. должно быть всё нормально отображатся.... потом разберитесь с перечислением вершин треугольников... ну и вконце включите свет и уже над нормалями шаманьте....
0
|
6 / 6 / 1
Регистрация: 08.12.2009
Сообщений: 58
|
|
26.03.2010, 17:00 [ТС] | 7 |
Возможно, косяки есть. Но при более близком рассмотрении моделей их вроде не очень-то видно. Это вероятно нормали издалека создают такие иллюзии... Хотя опять же фиг знает...
Насчёт передних и задней граней - не знаю, у меня же всё считывается с obj-файла, который на совести 3ds Maxа. А как раз с нормалями я вот что заметил. Похоже, постарался obj-экспортёр 3d Maxа: Я попробовал экспортировать куб. И он тоже в OpenGL почти залит однотонным цветом! Открываю obj-Файл и вижу, что записано только 8 нормалей. И точек у куба тоже 8, но используется-то каждая точка по 3 раза! ведь к каждой точке примыкает три грани(треугольника), которые обращены в совершенно разные стороны. Значит и нормали у них должны быть разные. И всего нормалей должно быть 24(8 точек, по 3 раза используется каждая). Причём в Maxе, если включить галочку "Show Normals", то отображаются все 24! А записываются только 8 и у них разная только координата по Y. Вот код obj-файла с кубом: Добавлено через 4 часа 36 минут Написал функцию для вычисления нормалей (пока что без сгаживания). Результат тот же (только теперь гранённый, но глюки те же). Уже думается мне, что нормали тут и не при чём... Так что я вообще в ступоре... Что вы там говорили про передние и задние грани? Можно поподробнее? Э... как их можно спутать? А когда я выключаю cullface и свет (если я это правильно делаю), то у меня получается плоское изображение, полностью залитое одним цветом.
0
|
26.03.2010, 20:17 | 8 |
Да. всё верно. только оно кажется что плоское как раз из-за сплошного цвета.
ну как бэ я тоже в своё время делал загрузчик только с WRML файла и не правильно перечислял вершины для треугольника. Получилось что треугольники через один были: то были то небыли. Как бы cullface их отсекал. Немного подшаманил и нормально стало определятся где треугольники передом стоят а где задом =) С *.obj не работал щаз анализирую... Да... действительно... Не понятное построение граней.....как у вас вообще что-то отображается? ААА!! Понял логику: Одна строчка - один треугольник: v1/t1/n1 v2/t2/n2 v3/t3/n3 где v1-v3 индекс вершин, n - нормалей, t-тексурных координат Интересные нормали. Почему они не единичные? И почему они только по вдоль оси Y? Либо экспортер врёт. Либо Вы в максе что-то напутали. Хотя как там можно напутать так напутать? Попробуйте с минимальными действиями создать куб с нуля и сохранить его. Если нормали опять врут, то ищите другой экспортер. На самом деле для куба достаточно 6 нормалей! Там по индексам адресация идёт(так же как и с вершинами). То есть кол-во вершин и нормалей не обязательно должно совпадать. Вот почему их 8? Вы точно просто куб создали?
1
|
6 / 6 / 1
Регистрация: 08.12.2009
Сообщений: 58
|
|
26.03.2010, 20:53 [ТС] | 9 |
да, всё верно. во всяком случае я именно так и пользуюсь obj-файлом.
да я вот тоже никак не могу найти ответа на вот эти вопросы... Во-во. Да-да, именно простой куб. Ага, уже ищу... Но поскольку даже рассчёт нормалей вручную (вернее, в самой программе) не помог - значит ошибки кроются где-то ещё, верно? Согласен, знаю. Но по крайней мере тогда уж было бы логичнее видеть 24 нормали, но никак не 8, не единичных и... кароче левых... ага. Если не верите (), то прочитайте название вверху obj-файла: "Box01". Блин, чё ж делать-та... P.S. snake32, спасибо большое за умные мысли, подсказки и за то, что я вам ещё не очень надоел(или вы об этом этично молчите)...)))
0
|
26.03.2010, 22:00 | 10 |
Написано много чего может. Но судя по вершином похоже на куб.
попробуйте загрузите "нормальный" *.obj который 100% правильный. Например, в комплекте с рендерманки идут много моделей, среди которых есть и *.obj файлы. Так Вы узнаете наверняка правильный ли загрузчик сделали или нет. Рад помочь разобраться в этом не легком, увлекательном(для меня) мире 3D! Если надоест, просто - игнор. Форум - дело добровольное. Правда не всегда время есть на это дело...
0
|
6 / 6 / 1
Регистрация: 08.12.2009
Сообщений: 58
|
|
27.03.2010, 07:41 [ТС] | 11 |
Хм, кажется дело в том, что если камеру отодвинуть подальше, то некоторые "задние грани" (но которые расположены очень близко к передним) начинают вылезать на первый план.
Как бы это исправить?
0
|
6 / 6 / 1
Регистрация: 08.12.2009
Сообщений: 58
|
|
27.03.2010, 17:35 [ТС] | 13 |
Ох, ну вот в чём дело! У меня глубина z-буфера стояла 16 бит! Поменял на 24 - результат в несколько раз лучше.
snake32, 1024 благодарностей!!! Извините, что по такому глупому пустяку (как выяснилось) я вас ээ... беспокоил) Правда я так и не разобрался, почему Max'овский экспортер мне предложил такие нормали к кубу, но со сложными моделями вроде всё нормально.
0
|
27.03.2010, 17:35 | |
27.03.2010, 17:35 | |
Помогаю со студенческими работами здесь
13
Экпорт из blender в юнити3Д Экпорт запроса в шаблон Excel Экпорт нового приложения на ipad тестера Экпорт таблицы в excel с сохранением форматирования Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |