Version: 5.3 (switch to 5.4b)
ЯзыкEnglish
  • C#
  • JS

Язык программирования

Выберите подходящий для вас язык программирования. Все примеры кода будут представлены на выбранном языке.

Camera.RenderToCubemap

Предложить изменения

Успех!

Благодарим вас за то, что вы помогаете нам улучшить качество документации по Unity. Однако, мы не можем принять любой перевод. Мы проверяем каждый предложенный вами вариант перевода и принимаем его только если он соответствует оригиналу.

Закрыть

Ошибка внесения изменений

По определённым причинам предложенный вами перевод не может быть принят. Пожалуйста <a>попробуйте снова</a> через пару минут. И выражаем вам свою благодарность за то, что вы уделяете время, чтобы улучшить документацию по Unity.

Закрыть

Отменить

Руководство
public function RenderToCubemap(cubemap: Cubemap, faceMask: int = 63): bool;
public bool RenderToCubemap(Cubemap cubemap, int faceMask = 63);

Параметры

cubemap The cube map to render to.
faceMask A bitmask which determines which of the six faces are rendered to.

Возврат значений

bool не отображена всей области экрана.

Описание

Рендер в статическую кубическую текстуру (cubemap) с камеры.

Эта функция наиболее полезна в редакторе для «запекания» статических кубических текстур (cubemaps) вашей сцены. См. пример ниже. Если вы хотите обновляемую в реальном времени кубическую текстуру (cubemap), используйте RenderToCubemap, который использует RenderTexture с isCubemap флагом, см. ниже.

Положение камеры, флаги очистки и плоскость отсечения будет использоваться для рендера в грани кубической текстуры (cubemap). faceMask является битовым полем, указывающим на то, какие грани cubemap должны быть отрендерены. Каждый бит, который соответствует грани. Номера битов являются целыми значениями перечисления CubemapFace. По умолчанию все шесть граней cubemap будут отрендерены (значение по умолчанию 63 имеет шесть младших бит).

Эта функция вернет false если рендеринг cubemap не удастся. Некоторое графическое аппаратное обеспечение не подерживает данную функциональность.

Note also that ReflectionProbes are a more advanced way of performing realtime reflections. Cubemaps can be created in the editor by selecting the Create->Legacy option.

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). faceMask является битовым полем, указывающим на то, какие грани cubemap должны быть отрендерены. Каждый
cubemap The texture to render to.

Возврат значений

bool не отображена всей области экрана.

Описание

Рендер в cubemap с этой камеры.

Это используется для отображения отражений в режиме реального времени в cubemap отрендеренные текстуры. Это может быть довольно трудоемко, особенно если все шесть граней cubemap отображаются в каждом кадре.

Положение камеры, флаги очистки и плоскость отсечения будет использоваться для рендера в грани кубической текстуры (cubemap). faceMask является битовым полем, указывающим на то, какие грани cubemap должны быть отрендерены. Каждый бит, который соответствует грани. Номера битов являются целыми значениями перечисления CubemapFace. По умолчанию все шесть граней cubemap будут отрендерены (значение по умолчанию 63 имеет шесть младших бит).

Эта функция вернет false если рендеринг cubemap не удастся. Некоторое графическое аппаратное обеспечение не подерживает данную функциональность.

Note that the RenderTexture must have isCubemap set to true. This is illustrated in the example following.

See Also: 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); }