CubeMap 的实现

参考:

http://blog.csdn.net/candycat1992/article/details/21827365     制作cubeMap三维纹理,surface shader实现(此妹子真是我等学习的榜样,自行惭愧)

http://www.cppblog.com/Leaf/archive/2011/01/07/138106.html   原理

http://my.oschina.net/u/138823/blog/181131

实现结果:右侧小球

一:cubeMap的制作和u3d小Tips制作:

有趣。主要是u3d都现成的...

public Cubemap cubemap;

类和

 go.camera.RenderToCubemap(cubemap);

 

继承自的ScriptableWizard类应该会进行一次drawCall操作,来在u3d编辑器上绘制对应的Tip...

1.我点击"Render CubeMap"按钮:

    [MenuItem("CookBook/Render CubeMap")]
static void RenderCubeMap()
{
ScriptableWizard.DisplayWizard("Render CubeMap",typeof(GenerateStaticCubemap),"Render!");
}

2.执行typeof(GenerateStaticCubemap)类,

3.检测是否确定好生成CUBE的Pos和载体;

4. isValid = true;则可以执行"Render!"  按钮,进行Create

  go.camera.RenderToCubemap(mCubeMap);//会在指定的Pos进行CubeMap的生成, 应该是啪啪啪六次不同的视锥体吧。

二:立方体纹理

主要是依据eye的位置和vertex Normal进行点乘获取反射向量,我们可以想像一个Box包围着上面的Sphere,然后不同的反射向量对应box不同的纹理位置信息。

o.Emission = texCUBE(_Cubemap, IN.worldRefl).rgb ;

三:教程中的worldRefl和WorldReflectionVector的区别;

  • float3 worldRefl; INTERNAL_DATA - will contain world reflection vector if surface shader writes to o.Normal. To get the reflection vector based on per-pixel normal map, use WorldReflectionVector (IN, o.Normal). See Reflect-Bumped shader for example.

首先worldRefl即世界坐标系下eye和vertex normal的反射向量;

其次,如果想获取ps方式下的反射向量,请使用WorldReflectionVector方式;那么,worldRefl是顶点vs级的方式咯...

目测以上解释不对...

u3d_shader_surface_shader_5的更多相关文章

随机推荐

  1. ArcGIS Server For Linux 10.2.2安装

    1.#  yum install Xvfb#  yum groupinstall "X Window System"# yum install gettext 2./usr/sbi ...

  2. [SharePoint] SharePoint 错误集 1

    1. Delete a site collection · Run command : Remove-SPSite –Identity http://ent132.sharepoint.hp.com/ ...

  3. MySQL sharding的几个参考地址

    http://stackoverflow.com/questions/5541421/mysql-sharding-approaches http://www.oschina.net/search?s ...

  4. 数据持久化之NSKeyedArchiver

    基本的数据类型如NSString.NSDictionary.NSArray.NSData.NSNumber等可以用属性列表的方法持久化到.plist 文件中,但如果是一些自定义的类的话,属性列表的方法 ...

  5. mysql 时间函数转换

    1 NOW() //当前时间 2 SYSDATE() //当前时间 3 CURRENT_TIMESTAMP 4 以'YYYY-MM-DD HH:MM:SS'或YYYYMMDDHHMMSS格式返回当前的 ...

  6. iOS 检查更新

    注意:苹果官方是不允许app具有检查更新提示! //直接跳转到AppStore - (void)setUpAppUpdate {    [ServerData queryGetURL:@{@" ...

  7. Android实现欢迎界面,点击进入应用

    在主线程中开启一个新线程,每隔100ms检查一下时间是否到达自己预设的显示时间,到达则进入应用 实现屏幕的触摸事件,当触摸的时候,进入应用 package com.example.administra ...

  8. C++ virtual虚函数

    #include<iostream> using namespace std; class Base{ public: void m() { cout << "it' ...

  9. 接口测试中三种传参请求(Map、request、Integer)解析

    注册企业接口传入的是一个request,查询企业接口传入的是一个integer:根据名称和国家名称模糊匹配接口传入的是一个Map:针对三种不同的传参我怎么作接口测试呢? 1 package com.w ...

  10. 最新中国菜刀caidao-20160620下载和说明

    0x00 中国制造, 黑客之刀 中国菜刀是中国安全圈内使用非常广泛的一款Webshell管理工具,此次老兵大牛进行了更新,界面更加优美,功能更加丰富,有图有真相! 0x01 验证 此次更新还自带了官网 ...