SK3DNode показывает SCNScene темнее, чем в SCNViewIOS

Программируем под IOS
Ответить Пред. темаСлед. тема
Anonymous
 SK3DNode показывает SCNScene темнее, чем в SCNView

Сообщение Anonymous »

Прежде чем я сойду с ума, я хотел бы задать здесь вопрос о следующей проблеме.
Я написал тестовое приложение для iOS на SwiftUI, которое показывает SpriteView и SceneView. SpriteView показывает (помимо прочего) два узла SK3DNode, которые отображают одну и ту же SCNScene с разных позиций камеры. SceneView отображает один и тот же SCNScene.
Проблема в том, что визуализированная сцена в обоих SK3DNode отображается темнее, чем в SceneView. >
Сцены в SpriteKit непригодны для использования, поскольку они слишком темные.
Это скриншот из симулятора iPad:
Изображение

Я ожидал, что оба SK3DNode (в верхней половине), чтобы отобразить сцену с той же яркостью, что и SceneView (нижняя половина).
Если я просто увеличу окружающее освещение, объекты показаны слишком яркими.
Я думал, проблема в текстуре или материале, но проблема возникает и с цветами. Отсюда и красные/зеленые/синие формы.
Я отключил встроенное освещение SK3DNode, установив для autoenablesDefaultLighting значение false. Каким-то образом SceneView (или его внутренний SCNView) должен добавлять собственное освещение, но я не могу понять, как это сделать. В корневом узле сцены показаны только мои узлы из файла .scn.
Я отключил среду в файле сцены, чтобы неба не было. куб. Имеется один источник рассеянного света, один точечный источник света и один всенаправленный свет. Независимо от того, какое освещение я использую, оба SK3DNode по-прежнему представляют сцену намного темнее, чем SceneView.
Вот функция, создающая два SK3DNode:

Код: Выделить всё

func make3DNode(camPos: SCNVector3) -> SK3DNode {
// Add SceneKit scene in 3D node
let node3d = SK3DNode(viewportSize: CGSize(width: 300, height: 200))
node3d.scnScene = scnScene
node3d.autoenablesDefaultLighting = false

let camera = SCNCamera()
let cameraNode = SCNNode()
cameraNode.camera = camera
if let lookAtTarget = scnScene.rootNode.childNode(withName: "red_texture", recursively: false) {
let constraint = SCNLookAtConstraint(target: lookAtTarget)
// why does this not work?
cameraNode.constraints = [constraint]
}
cameraNode.position = camPos
node3d.pointOfView = cameraNode

return node3d
}
Примечание: ограничение камеры LookAt, похоже, тоже не работает.
Код для добавления узлов на сцену:

Код: Выделить всё

    // Add SceneKit nodes
let node3d_1 = make3DNode(camPos: SCNVector3(x: -5, y: -2, z: 14))
node3d_1.name = "3d_1"
node3d_1.position = CGPoint(x: 150, y: 110)
spriteScene.addChild(node3d_1)

let node3d_2 = make3DNode(camPos: SCNVector3(x: 5, y: 2, z: 14))
node3d_2.name = "3d_2"
node3d_2.position = CGPoint(x: 150, y: -110)
spriteScene.addChild(node3d_2)
Полный исходный код проекта: https://github.com/biochill/test-spritekit
Он включает в себя как файл сцены SpriteKit, так и файл SceneKit. . SK3DNode добавляются программно. Я не могу вставить код для сцен, поскольку я создал файлы сцен как для SpriteKit, так и для SceneKit. Лучше всего, если вы скачаете проект GitHub и нажмите Cmd+R в Xcode для какого-нибудь симулятора iPad.
Заранее благодарим за любую помощь.

Подробнее здесь: https://stackoverflow.com/questions/784 ... in-scnview
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • SK3DNODE показывает SCNSCENE темнее, чем в SCNVIEW
    Anonymous » » в форуме IOS
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Scntechnique странно, когда Scnview маленький
    Anonymous » » в форуме IOS
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • Видео HTML5 становится темнее, если сверху находится элемент с включенным фоновым фильтром: синий (только Chrome)
    Anonymous » » в форуме CSS
    0 Ответы
    108 Просмотры
    Последнее сообщение Anonymous
  • Динамическое изменение цвета на светлее или темнее в процентах CSS
    Anonymous » » в форуме CSS
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • Текст в абзаце становится темнее, когда я фокусирую элемент ввода
    Anonymous » » в форуме CSS
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous

Вернуться в «IOS»