unity3d中制作Cubemaps反射游戏场景中的世界
1、--------------新建一个“RenderCubemapWizard”js脚本--------------
// 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.camera.RenderToCubemap( cubemap );
// destroy temporary camera
DestroyImmediate( go );
}
@MenuItem("GameObject/Render into Cubemap")
static function RenderCubemap () {
ScriptableWizard.DisplayWizard.<RenderCubemapWizard>(
"Render cubemap", "Render!");
}
}
--------------------------保存--------------------------
2、将该脚本放置到Editor文件夹下,然后GameObject组件菜单下就会出现Render into Cubemap选项。


3、我假设你已经有一个场景环境,或者还没创立的话给场景加一个环境天空球,接着再创建一个几何球体当作你需要环境反射的位置点(能反射周围环境的位置)。再创建一个新的cubemap来接收环境反射。




4、点击Render into Cubemap选项会弹出创建窗口。拖动球体到第二个选框,拖动刚才新建的空cubemap到第三个选框。

5、最后点击右下角的Render就行了,就做出了一张cubemap。
