Эффект стекла в материале SceneKit

Я хочу сделать эффект стекла в SceneKit. Я искал в Google, но нет идеального ответа. Итак, я нахожу воина SceneKit, который может четко решить мою проблему. Есть образ, который я собираюсь сделать.

Финал

Он должен быть похож на настоящий. Стеклянный эффект, отражение и тень здесь играют ключевую роль. У меня уже есть файл obj и dae.

Итак, есть ли кто-нибудь, кто может мне помочь?


person Fury    schedule 13.10.2017    source источник
comment
Посмотрите на физический рендеринг (PBR) с окружающим освещением для SceneKit. Это должно быть то, что вы ищете.   -  person Ru Chern Chong    schedule 13.10.2017


Ответы (1)


Создайте SCNMaterial и настройте следующие свойства и назначьте их геометрии бутылки SCNNode :

.lightingModel = .blinn
.transparent.content = // an image/texture whose alpha channel defines
                       // the area of partial transparency (the glass)
                       // and the opaque part (the label).
.transparencyMode = .dualLayer
.fresnelExponent = 1.5
.isDoubleSide = true
.specular.contents = UIColor(white: 0.6, alpha: 1.0)
.diffuse.contents =    // texture image including the label (rest can be gray)
.shininess =           // somewhere between 25 and 100
.reflective.contents = // glass won’t look good unless it has something
                       // to reflect, so also configure this as well.
                       // To at least a gray color with value 0.7 
                       // but preferably an image.

В зависимости от того, что еще есть в вашей сцене, фона и используемого освещения, вам, вероятно, придется настроить значения выше, чтобы получить желаемые результаты. Если вы хотите бутылку без этикетки, используйте свойство .transparency (установите ее содержимое в серый цвет) вместо свойства .transparent.

person Xartec    schedule 13.10.2017
comment
Спасибо за Ваш ответ! Можете ли вы поделиться изображением, которое вы сделали? И еще один вопрос. Можете ли вы сделать тень, которая может смотреть сквозь стекло? - person Fury; 14.10.2017