我在pv3d论坛上问了这个问题,没有一个人能回答,也没有人愿意回答。
我是3d的新手,所以如果这对一些人来说是常识,我道歉。
我有一个球体,我在其中应用了一个CellMaterial。真不错。我注意到在papervision sdk中也有一个CellShader。
我应该与CellMaterial一致地使用它吗?它应该是一个还是另一个?着色器是不推荐使用的着色器材质吗?
我最初的想法是着色器应用于整个场景,而材质可以唯一地应用于对象。
文档似乎显示了不同的情况。
同时使用CellShader和CellMaterial可以获得什么好处?我真的很喜欢在其中加入一些环境元素。
发布于 2010-09-11 04:44:31
如果你只是想看看细胞,没有别的,CellMaterial是你的选择。CellShader的目的是将其与ShadedMaterial中的BitmapMaterial混合使用。
假设你应用了一个GaraudMaterial并且喜欢它的外观,但是你也想要一个纹理在里面。使用GaraudMaterial无法做到这一点,但是如果您有一个BitmapMaterial和一个GaraudShader,则可以创建一个使用这两个and的ShadedMaterial。
例如:
var bitmapMaterial:BitmapMaterial = new BitmapMaterial(yourBitmapData);
var shader:PhongShader = new PhongShader(yourLight,0xFFFFFF, 0x000000,0,yourBumpMap);
//this uses the two above
var shadedMaterial:ShadedMaterial = new ShadedMaterial(bitmapMaterial,shader);
//apply it to something
var sphere:Sphere = new Sphere(shadedMaterial,250,10,10);有关更多解释,请查看Jim Foley's post。
至于环境光遮挡,获得效果的最便宜方法是将bake the shadows添加到纹理中。你可以用你选择的3D编辑器(3dsmax,maya,blender,等等)来做这件事,这基本上意味着光/阴影被渲染到纹理中。

在做这个dynamically上有一些工作,还没有检查它是否会出现在最新版本的Papervision中。

https://stackoverflow.com/questions/2900142
复制相似问题