5

Apple フォーラムのこのスレッドで言及されているように、iOS 10 のライトは弱くなり、シーンの見え方が変わります。

スレッドはSCNDisableLinearSpaceRenderingYES に設定することを提案していますが、これは機能しませんでした。別の言い方をSCNDisableLinearSpaceRenderingすれば、 を使用しても、iOS 10 と iOS 9 のシーンが同じように見えるわけではありません。少なくとも私たちのテストではそうではありません。

また、次のことも試しました。

floorNode.geometry?.firstMaterial?.lightingModel = SCNMaterial.LightingModel.blinn

以下のスクリーンショットは、同じシーンの違いを示しています。照明は同じでも、床が緑から黄色に変わることに注目してください。

シーンには、1 つのディレクショナル ライトと 1 つのアンビエント ライトが含まれています。

シーンを再現するためのファイル: https://www.dropbox.com/sh/cg5f7hyf1oonxfu/AAAJef7LhpSxuJyUSjqfGbmca?dl=0 .

うまくいったとしても、SCNDisableLinearSpaceRenderingYESに設定するとPBRが無効になるようです。

私たちのアプリでは、ユーザーがディレクショナル ライトの色をカスタマイズできます。目標は、PBR を利用しながら、iOS 10 シーンで iOS 9 シーンから同じカスタマイズされた照明を再現することです。

1) iOS 10 のシーンが iOS 8/9 のシーンと同じに見えるようにするにはどうすればよいですか?

2) PBR の恩恵を受けながら、どのようにナンバー 1 を達成できますか?

iOS 8/9 (シミュレーターで実行):

ここに画像の説明を入力

iOS 10 (ユーザーデバイスで実行):

ここに画像の説明を入力

4

2 に答える 2

1

マテリアルの照明モデルを からに変更することで、シーンiOS 10がレンダリングされるのと同じようにシーンをレンダリングできます。iOS 9SCNLightingModelPhysicallyBasedSCNLightingModelBlinn

: シーンに 3D モデルが 1 つしかない場合:

for(SCNMaterial * mt in model.geometry.materials)
    mt.lightingModelName = SCNLightingModelBlinn;

ただし、これを行うと、PBR を利用できなくなります。PBR を使い続けたい場合は、intensityとのtemperatureプロパティを操作SCNLightして、さまざまな結果を得ることができます。

于 2016-09-23T05:29:09.460 に答える
0

これはシーン キットで確認されているバグです。Bug Reporter にバグ番号 28459280 でレポートを提出しました。問題は、iOS 10で Metal が常に に設定locksAmbientWithDiffuseされることです。true

シーン キット エンジニアの 1 人によると、問題のノード (この例ではフロア ノード)を手動で設定locksAmbientWithDiffuseし、目的の外観が得られるまで iOS 8/9 の照明を調整することで回避できるとのことです。true

これにより、iOS 10 のシーンが iOS 8/9 のシーンと同じに見えるようになります。

于 2016-09-26T06:43:34.293 に答える