|
1 / 1 / 0
Регистрация: 03.08.2014
Сообщений: 46
|
||||||
Расчет нормалей вертекса15.12.2020, 15:57. Показов 8589. Ответов 50
Метки нет (Все метки)
Друзья, есть вопрос.
Есть библиотека 3d, простенькая. В ней есть функция - грузишь модель, представлющую собой массив, состоящий из вершин, индексов граней, нормалей и цвета, она эту модель отрисовывает. Массив я создал - забил в него вертексы, назначил их граням, в режиме Wireframe рисует отлично. Хочу теперь запустить имеющуюся функцию отрисовки в режиме Flat и Gouraud. Для этого в массив к каждому вертексу нужно добавить нормали. Именно к вертексу, а не к грани. ДЛя вычисления нормали к грани там есть своя функция, но для этого в нее нужно ввести нормали вертексов.
А как вычислить нормали к вертексам? Подвопрос: задает ли вершина нормаль? Или для ее расчета необходимы данные о всех трех ребрах, образующих грань? P.S. Попытался в Blender создать куб, сохранить и посмотреть в сохраненный файл, но в него записались уже вычисленные нормали граней, а по вертексам данных нет. Добавлено через 58 секунд Вот эта библиотека, если что https://github.com/FabioRM/dsp... rc/dsp3D.c
0
|
||||||
| 15.12.2020, 15:57 | |
|
Ответы с готовыми решениями:
50
Расчет нормалей для освещения Как изменить позицию вертекса на меше? Карты нормалей |
| 23.01.2021, 00:52 | |||
|
У меня Blender версии 2.67 и там не левой панели (T-panel) эти кнопки: Как смог постарался объяснить. Посмотрите этот ролик, который длиться меньше 4 минут, в нём наглядно показана разница между Flat и Gouraud. Вы увидите, что для Flat не одна нормаль на видеокарте, а уже программист отправил одинаковые нормали для каждой вершины: Видео
0
|
|||
|
1 / 1 / 0
Регистрация: 03.08.2014
Сообщений: 46
|
|
| 26.01.2021, 22:15 [ТС] | |
|
А вот это - это что, Фонг? Гуро? Я так понял, там угластые призмы, но каким-то образом сглажены. Это как-то за счет нормалей делается?
0
|
|
| 26.01.2021, 22:51 | |||
|
Если в Blender нажать кнопку Smooth, то нормали соседних граней будут усреднены: Вы можете кубик сделать Smooth, экспортировать в файл и посмотреть, как изменятся нормали по сравнению c Flat. Для сравнения Фонг и Гуро. На этой сфере с Гуро освещением затенение неровное, треугольники просматриваются: https://jsfiddle.net/8Observer8/edz9Lz8f/ А здесь сфера с Фонг освещением: https://jsfiddle.net/8Observer8/qzwyow4j/
0
|
|||
| 26.01.2021, 23:15 | |
|
zheka1980, попробуйте в Blender выбрать объект и нажать кнопку Smooth на панели слева. Нарисуйте объект с помощью библиотеки, которую вы используете, с включенным Гуро освещением и посмотрите, что получится. Обратите внимание, что Smooth работает не только в объектом режиме Blender, но и в режиме редактирования (Edit Mode), то есть можно выделять Face'ы и нажимать Smooth, а не делать весь объект сглаженным.
0
|
|
|
1 / 1 / 0
Регистрация: 03.08.2014
Сообщений: 46
|
||||||
| 21.02.2021, 21:47 [ТС] | ||||||
|
Продолжаем одолевать 3D
Есть у меня 3D библиотека, настроил я ее, нарисовал кубик. Теперь хочу его покрутить (при помощи сенсорного экрана). Вначале я крутил сам кубик, но не получил желаемого результата - стоит его горизонтальным движением пальца повернуть вокруг вертикальной оси, вместе с ним поворачивается и горизонтальная (что естественно), а когда после этого начинаешь водить пальцем вверх-вниз, он не заваливается взад-вперед относительно наблюдателя, а крутится вокруг изменившей свое пространственное положение горизонтальной оси (что, опять-таки, естественно). Я решил поступить по другому - вращать не объект, а перемещать камеру вокруг кубика. То есть точка прицела камеры всегда в координатах 0,0,0, а сама камера гуляет по поверхности сферы радиусом 10. Иными словами - ведешь по экрану вверх-вниз - меняется зенитный угол, ведешь вправо-влево - меняется азимут. Высчитываю по вот такой формуле В коде это выглядит так:
проверял отладкой преобразование пробега пальца по экрану в параметры azimuthal и zenital - оно адекватное. Саму камеру перемещал вверх-вниз, вправо-влево - тоже адекватно. Но она при этом движется во фронтальное плоскости перед объектом, что не соответствует желаемому. А желаемое - двигаться в пределах сферы, окружающей объект. В упор не вижу ошибки, в чем она может быть? взглянем, к примеру на формулу расчета Z - из нее вытекает, что Z зависит только от зенитного угла, но ведь это не так! Если камера, не меняя зенита, будет "водить хоровод" вокруг объекта, Z ведь должен меняться...
0
|
||||||
|
1 / 1 / 0
Регистрация: 03.08.2014
Сообщений: 46
|
|
| 22.02.2021, 08:54 [ТС] | |
|
Вот видео поведения куба
https://cloud.mail.ru/public/whtu/BXQvRUxSV Добавлено через 42 минуты Ага.... разница в том, что в моей библиотеке ось Z смотрит на экран, а в формуле - вверх. Переставил оси - вроде заработало почти как надо. Только вот зенит почему-то работает только в пределах 0-180 градусов.... пытаешься заглянуть под объект, при пересечении 0 или 180 градусов начинается вращение в обратную сторону. Это как побороть?
0
|
|
|
Модератор
|
||
| 22.02.2021, 11:19 | ||
|
0
|
||
| 22.02.2021, 13:57 | |
|
Я не совсем понял, что в конечном итоге должно получиться. Я писал недавно демку солнечной системы с поворотами камеры мышкой (зажатой кнопкой мыши) и пальцем для мобильных на WebGL: https://8observer8.github.io/W... index.html Примерно такое должно быть поведение камеры или другое?
0
|
|
|
1 / 1 / 0
Регистрация: 03.08.2014
Сообщений: 46
|
||||||
| 22.02.2021, 21:29 [ТС] | ||||||
|
Ахахах, уписаться можно))))
Решил я понаблюдать за численными значениями координат - все нормально. Они меняются как надо. А смена направления вращения - это ИЛЛЮЗИЯ! Камера при переходе через горизонт почему-то переворачивается на 180 градусов вокруг оси, соответствующей направлению взгляда. И кубик, который только что "падал" от нас, начинает на нас "заваливаться", но подставляя нам другую грань, а не ту, которая от нас уплывала. Да.... с этой то проблемой я разобрался, теперь нужно лезть в библиотеку и искать где там настройки поворота камеры. ДРузья, я ноль в 3D графике. Вот список библиотечных функций, которые так или иначе формируют или определяют проекцию
0
|
||||||
| 22.02.2021, 21:29 | |
|
Вычисление нормалей (c++)
Генерация псевдослучайных нормалей Вычисление нормалей к вершинам Экспорт нормалей из 3ds Max Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ
Основная суть и тезисы по измерениям:
0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема.
Объект не может перемещаться в 0D.
1D (Первое измерение):. . .
|
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek
ВВЕДЕНИЕ
Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
|
Модель по догадкам
anaschu 25.08.2026
Прошло две недели. Я уже рассказывал, как разговаривал с сотрудниками у сортировки и как понял, что главная ветка — не про приёмку, а про отбор. Но тогда я думал, что понял механику. На этой неделе я. . .
|
Запись в регистр сведений независимо от заполненности табличной части
Maks 25.08.2026
Реализация из решения ниже выполнена на нетиповом документе с несколькими табличными частями, разработанного в КА2.
Задача:
Обеспечить запись документа в регистр сведений независимо от. . .
|
|
Ноутбук Альфария
kumehtar 24.08.2026
Встретился тут в сети ноутбук Альфария, примарха Альфа-Легиона. Хотя возможно, это ноутбук Омегона, разумеется.
Ну как вам?
|
Мастера простых решений
DevAlt 23.08.2026
В сишарп стэках winforms, да и wpf существует сложная система связывания
источниках данных и элементов формы(текстовые поля и метки), опирается все
это на технологию событий и мета. . .
|
Цена ошибки
DevAlt 23.08.2026
Человек я беспокойный и потому заинтересовался OCaml,
в чате форсили функторы модулей как суперфичу.
Пытаясь отдуплить концепт, наткнулся на тутор с простым примером.
А главный принцип обучения от. . .
|
Сегодня суббота, 22.08.2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины.
zorxor 22.08.2026
Сегодня суббота, 22. 08. 2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины. Кто Я, откуда Я пришел и куда Я иду? Эти вопросы не оставляют меня ни на секунду. Жизнь на планете Земля. . .
|