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

スクリプト言語

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

Camera.RenderToCubemap

フィードバック

ありがとうございます

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

閉じる

送信に失敗しました

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

閉じる

キャンセル

マニュアルに切り替える
public function RenderToCubemap(cubemap: Cubemap, faceMask: int = 63): bool;
public bool RenderToCubemap(Cubemap cubemap, int faceMask = 63);

パラメーター

cubemap レンダリングするキューブマップ
faceMask 6つの面のどの面をレンダリングするか確定するビットマスク

戻り値

bool レンダリングに失敗した場合、false を返します。それ以外は true を返します。

説明

このカメラから静的のキューブマップにレンダリングします。

この関数は Editor 内でシーンの静的キューブマップに"焼き付ける"ために最も役に立ちます。 下記のウィザード例を見てください。もしキューブマップをリアルタイムでアップデートしたい場合、 isCubemap フラグを立てた RenderTexture を変形する RenderToCubemap を使用します。以下を参照してください。

カメラの位置は、クリアフラグとクリッピング平面距離のキューブマップの各面のレンダリングに使用されます。 faceMask はキューブマップの各面にレンダリングされるべきかを示すビットフィールドです。 設定されている各ビットは面に対応しています。ビット番号は CubemapFace 列挙の int 値です。 デフォルトでは 6 つのすべての面でレンダリングされます(デフォルト値は 63 で下位 6 ビットを持ちます)

この関数はキューブマップのレンダリングに失敗したとき false を返します。 一部のグラフィックスハードウェアでは機能がサポートされていません。

リフレクションプローブはリアルタイム反射を実行するうえで、より高度な方法であることも頭に入れておきましょう。キューブマップは Create->Legacy オプションを選択することでエディターで作成することができます。

See Also: Cubemap assets, Reflective shaders.

	// Render scene from a given point into a static cube map.
	// Place this script in Editor folder of your project.
	// Then use the cubemap with one of Reflective shaders!
	class RenderCubemapWizard extends ScriptableWizard {
		var renderFromPosition : Transform;
		var cubemap : Cubemap;
		
		function OnWizardUpdate () {
			helpString = "Select transform to render from and cubemap to render into";
			isValid = (renderFromPosition != null) && (cubemap != null);
		}
		
		function OnWizardCreate () {
			// create temporary camera for rendering
			var go = new GameObject("CubemapCamera", Camera);
			// place it on the object
			go.transform.position = renderFromPosition.position;
			go.transform.rotation = Quaternion.identity;

// render into cubemap go.GetComponent.<Camera>().RenderToCubemap(cubemap); // destroy temporary camera DestroyImmediate(go); } @MenuItem("GameObject/Render into Cubemap") static function RenderCubemap () { ScriptableWizard.DisplayWizard.<RenderCubemapWizard>( "Render cubemap", "Render!"); } }
using UnityEngine;
using UnityEditor;
using System.Collections;

public class RenderCubemapWizard : ScriptableWizard {

public Transform renderFromPosition; public Cubemap cubemap; void OnWizardUpdate () { string helpString = "Select transform to render from and cubemap to render into"; bool isValid = (renderFromPosition != null) && (cubemap != null); } void OnWizardCreate () { // create temporary camera for rendering GameObject go = new GameObject( "CubemapCamera"); go.AddComponent<Camera>(); // place it on the object go.transform.position = renderFromPosition.position; go.transform.rotation = Quaternion.identity; // render into cubemap go.GetComponent<Camera>().RenderToCubemap( cubemap ); // destroy temporary camera DestroyImmediate( go ); } [MenuItem("GameObject/Render into Cubemap")] static void RenderCubemap () { ScriptableWizard.DisplayWizard<RenderCubemapWizard>( "Render cubemap", "Render!"); } }

public function RenderToCubemap(cubemap: RenderTexture, faceMask: int = 63): bool;
public bool RenderToCubemap(RenderTexture cubemap, int faceMask = 63);

パラメーター

faceMask キューブマップの各面にレンダリングされるべきかを示すビットフィールド
cubemap レンダリングするテクスチャ

戻り値

bool レンダリングに失敗した場合、false を返します。それ以外は true を返します。

説明

このカメラからキューブマップにレンダリングします。

これはキューブマップレンダーテクスチャのリアルタイムリフレクションで使用します。 キューブマップ 6 つすべての面を毎フレームレンダリングした場合、特に高価なものとなってしまいます。

カメラの位置は、クリアフラグとクリッピング平面距離のキューブマップの各面のレンダリングに使用されます。 faceMask はキューブマップの各面にレンダリングされるべきかを示すビットフィールドです。 設定されている各ビットは面に対応しています。ビット番号は CubemapFace 列挙の int 値です。 デフォルトでは 6 つのすべての面でレンダリングされます(デフォルト値は 63 で下位 6 ビットを持ちます)

この関数はキューブマップのレンダリングに失敗したとき false を返します。 一部のグラフィックスハードウェアでは機能がサポートされていません。

RenderTexture は isCubemap を true に設定されている必要があります。これは以下の例で説明します。

関連項目: RenderTexture.isCubemap、Reflective shaders.

	// Attach this script to an object that uses a Reflective shader.
	// Realtime reflective cubemaps!

@script ExecuteInEditMode

var cubemapSize = 128; var oneFacePerFrame = false; private var cam : Camera; private var rtex : RenderTexture;

function Start () { // render all six faces at startup UpdateCubemap( 63 ); }

function LateUpdate () { if (oneFacePerFrame) { var faceToRender = Time.frameCount % 6; var faceMask = 1 << faceToRender; UpdateCubemap (faceMask); } else { UpdateCubemap (63); // all six faces } }

function UpdateCubemap (faceMask : int) { if (!cam) { var go = new GameObject ("CubemapCamera", Camera); go.hideFlags = HideFlags.HideAndDontSave; go.transform.position = transform.position; go.transform.rotation = Quaternion.identity; cam = go.GetComponent.<Camera>();; cam.farClipPlane = 100; // don't render very far into cubemap cam.enabled = false; } if (!rtex) { rtex = new RenderTexture (cubemapSize, cubemapSize, 16); rtex.isCubemap = true; rtex.hideFlags = HideFlags.HideAndDontSave; GetComponent.<Renderer>().sharedMaterial.SetTexture ("_Cube", rtex); } cam.transform.position = transform.position; cam.RenderToCubemap (rtex, faceMask); }

function OnDisable () { DestroyImmediate (cam); DestroyImmediate (rtex); }