Я написал небольшой синтаксический анализатор .obj для небольшого волнового фронта (формат 3D-модели), я могу правильно отображать геометрию, но у меня есть проблемы с текстурированием.
Единственный способ получить правильную текстуру - делить модель в моем 3d-редакторе, экспортировать и разглашать ее таким образом. Т.е.: я больше не использую данные вершин, каждый треугольник на ней так что массив indexBuffer выглядит так [0,1,2,3,4,5,6 ...], которого я хочу избежать.
Правильной текстура/неэффективная геометрия (нет повторного использования вершин: 36 вершин): Correct http://imageshack.us/a/img29/2242/textureright.jpg
Неправильной текстура/право топологии (Обмен данных: 8 вершин только = эффективные): Wrong http://imageshack.us/a/img443/6160/texturewrong.jpg
Я думал попробовать и отделить буфер UVs от indexBuffer, предназначенный для вершин, но не нашел способ сделать это; если это действительно выполнимо.
Я также испортил код агаля, но не добился никаких результатов.
Желаемый конец может передавать разные координаты UVs в одну и ту же вершину в контексте рисунка треугольника.
Что делать?
Спасибо. (Я новичок в программировании на 3d)Ультрафиолетовое картирование в Stage3D/AS3
ответ
Может показаться, что вам нужна только одна вершина на «место вершины» вашей модели, но из того, что я понимаю в партитуре .obj, вам нужно определить свои вершины вокруг FACES. Это означает, что у вас может быть несколько вершин для некоторых мест - в зависимости от того, сколько лиц примыкает к этому местоположению, - но окупаемость вы можете иметь разные координаты UV для этих вершин в том же месте.
Я бы предложил изменить ваш синтаксический анализатор, чтобы создать вершины на основе лиц, которые они определяют, а не только их позиции. Я знаю, что это набирает количество вершин, но из того, что я читал, неизбежно, если вам нужны разные УФ-лучи для того же места в вершине.
Итак, к сожалению, я уверен, что ваш первый вариант - это путь.
кажется, что ваша операция сварки неправильная. Для сварки вершин вы должны быть уверены, что позиции, UV-координаты, нормали и касательные (если они вам нужны) равны
- 1. Ультрафиолетовое отображение в блендере не отображается должным образом при разворачивании
- 2. картирование corodinates
- 3. ASPX Картирование в web.config
- 4. Картирование в Spark Scala
- 5. Картирование в elasticsearch
- 6. Картирование в HTML-страницах
- 7. Картирование в SuperCollider
- 8. Картирование в Nhibernate
- 9. Картирование текстур в LWJGL
- 10. Картирование памяти в CUDA
- 11. Картирование массивов в restkit
- 12. Картирование в Hibernate Аннотации
- 13. Картирование в инфраструктуре Entity?
- 14. Картирование в Pandas
- 15. Картирование себя в Symfony2
- 16. Множество-много картирование в EF
- 17. Картирование 2 изображения в Opencv
- 18. Картирование в d3 порядковых масштабах
- 19. OpenGL картирование текстуры в сфере
- 20. Картирование AngularJs кодов ReactJs?
- 21. Symfony2, Doctrine2, сущность Картирование
- 22. Картирование с парами
- 23. Entity рамки картирование вопросы
- 24. Картирование !! in Haskell
- 25. Картирование и DQL
- 26. Картирование памяти Python
- 27. Картирование пикселей двух матриц
- 28. Картирование «Name» на Range
- 29. Нокаут: Картирование/переплет JSON
- 30. Тепловое картирование шахтных землетрясений
Я не могу поверить, что это единственный вариант. Это не относится к парсеру .obj only: Предположим, что я хочу создать квад и иметь два треугольника двух разных цветов, я уверен, что это может быть достигнуто каким-то другим способом, чем с 6 вершинами для этого одного квадранта. Существующие игры stage3d не могут иметь количество вершин, которые экспоненциально экспонируются таким образом ... Спасибо за ответ, хотя :) – chadiik
Если вы прокрутите вниз до заголовка, который читает «Определение геометрии с буферами вершин и буферами индексирования», на этой странице есть информация. .. http://www.adobe.com/devnet/flashplayer/articles/how-stage3d-works.html о том, как буфер вершин определяет грани. – moosefetcher