u3d_shader_surface_shader_5
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, useWorldReflectionVector (IN, o.Normal). See Reflect-Bumped shader for example.
首先worldRefl即世界坐标系下eye和vertex normal的反射向量;
其次,如果想获取ps方式下的反射向量,请使用WorldReflectionVector方式;那么,worldRefl是顶点vs级的方式咯...
目测以上解释不对...
u3d_shader_surface_shader_5的更多相关文章
随机推荐
- SAP中禁止特定用户更改密码
在SAP管理中,有时一些账号因为是提供给大家作查询用的,受密码强度策略限制,密码不能为空.故密码设为通用后在公司内发布,为避免有些用户更改后造成其他用户无法登陆,我们可在使用TC-SU01,在登录数据 ...
- SQLLDR 教程
)- 总览 http://blog.csdn.net/dbanote/article/details/9153895 )- 命令行参数 http://blog.csdn.net/dbano ...
- Android实现登录
登录界面布局文件 1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android ...
- 操作系统开发系列—12.e.Makefile
先来看一个简单的Makefile,我们把它放在目录/boot下,可以用来编译boot.bin和loader.bin. # Makefile for boot # Programs, flags, et ...
- CoreLocation 定位
前言: 本章会使用OC和Swift分别进行实现,需要了解Swift的小伙伴可以翻一下之前的博文 LBS和SoloMo(索罗门) LBS:基于位置的服务,根据定位展示周边美食.景点等信息(全称:Loca ...
- Android 采用Layout Inflater创建一个View对象
接着上文<Android ListViewview入门>,本文使用android的Inflater来实现 在layouyt文件夹中新建一个list_item.xml的文件,添加如下代码: ...
- 创建一个Android项目
当我们的eclipse安装了SDK后,点击Window-->Perference-->DDMS.eclipse界面立即转为DDMS界面. 这时,我们可以打开我们的服务端(安卓模拟器或者是我 ...
- iOS tableviewcell 分割线 偏移和颜色
改变颜色 [_hotProductsTableView setSeparatorColor : kSeparatorColor]; -(void)viewDidLayoutSubviews { [su ...
- 【代码笔记】iOS-判断中英文混合的字符长度的两种方法
一,代码. - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. ...
- Mongodb Manual阅读笔记:CH6 聚合
6 聚合 Mongodb Manual阅读笔记:CH2 Mongodb CRUD 操作Mongodb Manual阅读笔记:CH3 数据模型(Data Models)Mongodb Manual阅读笔 ...