Недавно я пытался создать средство 3D-рендеринга с нуля, используя Java, в частности, используя обработку (PApplet). Однако у меня есть проблема: если два треугольника пересекаются, результат будет не таким, как я ожидал. Когда два треугольника перекрываются, на пересечении должна быть прямая линия. Однако получаю такой результат:Линии на пересечении не прямые
Когда я включаю очертания треугольника, становится немного понятнее, что происходит, как показано здесь:Когда пересекаются линии из других треугольников пересекающихся треугольников, образуется точка.
Этот эффект становится еще более выраженным, когда я приближаюсь к двум треугольникам, из-за того, что при отбраковке треугольников создается гораздо больше треугольников, чем было изначально: Крупный план эффекта, который также имеет гораздо больше треугольников, чем на первых изображениях
Это происходит только с треугольниками, близкими друг к другу, и не происходит, когда две фигуры находятся дальше или не внутри друг друга:Дальнейшие фигуры не вызывают таких же проблем< /p>
Мой полный код находится на этом GitHub, если вы хотите увидеть проблему самостоятельно: https://github.com/SACHSTech/processing ... oИзвиняюсь за плохое форматирование, так как этим летом я только начал программировать.
Что я пробовал:
Изменение интерполяции глубины с l1 * глубины[2]+l2 * глубины[1] + l3 * глубины[0] до 1/(l1/глубины[2]+l2/глубины[1]+l3/глубины[0]). Вместо этого он просто разбивал фигуры с отрицательным значением z.
Изменение всех целых чисел на двойные. Вместо этого он сломал его еще больше, и он стал пиксельным. В этой версии проблема также не устранена.
Многократная проверка каждого метода. Я не смог найти никаких очевидных проблем, и каждый раз, когда я пытался изменить значение, вся программа ломалась.
Последние несколько дней я пытался исправить это и проверил и попытался изменить почти каждый метод в коде. Пока ничего не помогло, поэтому я думаю, что это может быть проблема с каким-то уравнением, которое у меня есть.
Любая помощь будет очень признательна.
Подробнее здесь: https://stackoverflow.com/questions/785 ... s-expected
Когда 2 3d треугольника расположены друг над другом, они отображаются не так, как ожидалось. ⇐ JAVA
Программисты JAVA общаются здесь
1717038206
Anonymous
Недавно я пытался создать средство 3D-рендеринга с нуля, используя Java, в частности, используя обработку (PApplet). Однако у меня есть проблема: если два треугольника пересекаются, результат будет не таким, как я ожидал. Когда два треугольника перекрываются, на пересечении должна быть прямая линия. Однако получаю такой результат:Линии на пересечении не прямые
Когда я включаю очертания треугольника, становится немного понятнее, что происходит, как показано здесь:Когда пересекаются линии из других треугольников пересекающихся треугольников, образуется точка.
Этот эффект становится еще более выраженным, когда я приближаюсь к двум треугольникам, из-за того, что при отбраковке треугольников создается гораздо больше треугольников, чем было изначально: Крупный план эффекта, который также имеет гораздо больше треугольников, чем на первых изображениях
Это происходит только с треугольниками, близкими друг к другу, и не происходит, когда две фигуры находятся дальше или не внутри друг друга:Дальнейшие фигуры не вызывают таких же проблем< /p>
Мой полный код находится на этом GitHub, если вы хотите увидеть проблему самостоятельно: https://github.com/SACHSTech/processing-cpt-caleb-s-team-soloИзвиняюсь за плохое форматирование, так как этим летом я только начал программировать.
Что я пробовал:
Изменение интерполяции глубины с l1 * глубины[2]+l2 * глубины[1] + l3 * глубины[0] до 1/(l1/глубины[2]+l2/глубины[1]+l3/глубины[0]). Вместо этого он просто разбивал фигуры с отрицательным значением z.
Изменение всех целых чисел на двойные. Вместо этого он сломал его еще больше, и он стал пиксельным. В этой версии проблема также не устранена.
Многократная проверка каждого метода. Я не смог найти никаких очевидных проблем, и каждый раз, когда я пытался изменить значение, вся программа ломалась.
Последние несколько дней я пытался исправить это и проверил и попытался изменить почти каждый метод в коде. Пока ничего не помогло, поэтому я думаю, что это может быть проблема с каким-то уравнением, которое у меня есть.
Любая помощь будет очень признательна.
Подробнее здесь: [url]https://stackoverflow.com/questions/78552702/when-2-3d-triangles-over-each-other-it-does-not-display-as-expected[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия