Version: 5.3 (switch to 5.4b)
言語English
  • C#
  • JS

スクリプト言語

好きな言語を選択してください。選択した言語でスクリプトコードが表示されます。

LightProbes.bakedProbes

フィードバック

ありがとうございます

この度はドキュメントの品質向上のためにご意見・ご要望をお寄せいただき、誠にありがとうございます。頂いた内容をドキュメントチームで確認し、必要に応じて修正を致します。

閉じる

送信に失敗しました

なんらかのエラーが発生したため送信が出来ませんでした。しばらく経ってから<a>もう一度送信</a>してください。ドキュメントの品質向上のために時間を割いて頂き誠にありがとうございます。

閉じる

キャンセル

マニュアルに切り替える
public var bakedProbes: SphericalHarmonicsL2[];
public SphericalHarmonicsL2[] bakedProbes;

説明

ベイクされたライトプローブの係数

#pragma strict
public var m_Ambient;
public var m_Lights;

// On start add the contribution of the ambient light and all lights // assigned to the lights array to all baked probes. function Start() { var bakedProbes = LightmapSettings.lightProbes.bakedProbes; var probePositions = LightmapSettings.lightProbes.positions; var probeCount = LightmapSettings.lightProbes.count;

// Clear all probes for (var i = 0; i < probeCount; i++) bakedProbes[i].Clear();

// Add ambient light to all probes for (var i = 0; i < probeCount; i++) bakedProbes[i].AddAmbientLight(m_Ambient);

// Add directional and point lights' contribution to all probes for (var l in m_Lights) { if (l.type == LightType.Directional) { for (var i = 0; i < probeCount; i++) bakedProbes[i].AddDirectionalLight(-l.transform.forward, l.color, l.intensity); } elseif (l.type == LightType.Point) { for (var i = 0; i < probeCount; i++) SHAddPointLight(probePositions[i], l.transform.position, l.range, l.color, l.intensity, bakedProbes[i]); } } LightmapSettings.lightProbes.bakedProbes = bakedProbes; }

function SHAddPointLight(probePosition, position, range, color, intensity, sh) { // From the point of view of an SH probe, point light looks no different than a directional light, // just attenuated and coming from the right direction. var probeToLight = position - probePosition; var attenuation = 1.0F / (1.0F + 25.0F * probeToLight.sqrMagnitude / (range * range)); sh.AddDirectionalLight(probeToLight.normalized, color, intensity * attenuation); }
using UnityEngine;
using UnityEngine.Rendering;

public class ExampleClass : MonoBehaviour { public Color m_Ambient; public Light[] m_Lights; // On start add the contribution of the ambient light and all lights // assigned to the lights array to all baked probes. void Start() { SphericalHarmonicsL2[] bakedProbes = LightmapSettings.lightProbes.bakedProbes; Vector3[] probePositions = LightmapSettings.lightProbes.positions; int probeCount = LightmapSettings.lightProbes.count; // Clear all probes for (int i = 0; i < probeCount; i++) bakedProbes[i].Clear(); // Add ambient light to all probes for (int i = 0; i < probeCount; i++) bakedProbes[i].AddAmbientLight(m_Ambient); // Add directional and point lights' contribution to all probes foreach (Light l in m_Lights) { if (l.type == LightType.Directional) { for (int i = 0; i < probeCount; i++) bakedProbes[i].AddDirectionalLight(-l.transform.forward, l.color, l.intensity); } else if (l.type == LightType.Point) { for (int i = 0; i < probeCount; i++) SHAddPointLight(probePositions[i], l.transform.position, l.range, l.color, l.intensity, ref bakedProbes[i]); } } LightmapSettings.lightProbes.bakedProbes = bakedProbes; }

void SHAddPointLight(Vector3 probePosition, Vector3 position, float range, Color color, float intensity, ref SphericalHarmonicsL2 sh) { // From the point of view of an SH probe, point light looks no different than a directional light, // just attenuated and coming from the right direction. Vector3 probeToLight = position - probePosition; float attenuation = 1.0F / (1.0F + 25.0F * probeToLight.sqrMagnitude / (range * range)); sh.AddDirectionalLight(probeToLight.normalized, color, intensity * attenuation); } }