Как заставить пользовательскую SCNGeometry выглядеть более гладкой или более непрерывной - PullRequest
0 голосов
/ 29 апреля 2020

Построение трехмерного объекта с SCNGeometry в режиме реального времени / / 1017 *. Пользовательские элементы управления изменяют объект. Изображение представляет собой обрезанный снимок экрана SCNNode, отображаемый в SCNView:

enter image description here

Моя цель - получить плавную модель с непрерывной заливкой а не чередующиеся светлые / темные треугольники. Я знаю, что треугольники созданы мной как разделение четырех вершин, но я не знаю, почему затенение будет таким же разным, как оно есть, и как его сглаживать. Все вершины имеют одинаковый цвет, кроме красной и черной зубчатой ​​точки в правом верхнем углу. Значение сгиба края является значением по умолчанию.

        let element = SCNGeometryElement(indices: tris, primitiveType: .triangles)
        geometry = SCNGeometry(sources: [vertexSource, colorSource], elements: [element])
        geometry.materials = [SCNMaterial()]
        geometry.firstMaterial?.lightingModel = .lambert
        geometry.subdivisionLevel = 3

Освещение фоновое, хотя эффект, о котором я спрашиваю, тот же, с добавленными прожекторами. Я экспериментировал с различными значениями subdivisionLevel. Весь объект состоит из десятков тысяч вершин, причем эта часть объекта составляет тысячи вершин. Каждая вершина находится там, где и должна быть, объект выглядит правильно при масштабировании и повороте, и дисплей работает быстро, но я не знаю, как избежать этих чередующихся светлых / темных полос для более плавного внешнего вида.

Спасибо за любые идеи .

...