如何向cg(着色器都一样)传入3维数组
我的方法:靠传入3d texture(volume texture) ,不过3维数据是在CPU中算出来的,就是个数组,总不能一个一个写到
3dtexture上传入吧?
问题2:有没有成块(快速)把数组写到3dtexture的方法?
能提供方法者另奖50
[解决办法]
不知道你要传入多少数据。如果很少的话直接用寄存器传入即可。
数据很多就要靠纹理了。
3D纹理没玩过,难道不是用Lock写数据?
[解决办法]
把计算过程放进shader,渲染到3D纹理之类的,不过我不能确定是否能用,在DX10/11里面,不超过512维的三维数组也可以使用2维数组来模拟,比如256张256*256的2D纹理,这样就能使用渲染到纹理的技术了。
Lock以后一个一个或者一行一行的写数据是最通用的方法,如果纹理不是经常要填充的话,这个方法应该可以接受。
不过参照使用3D纹理最多的体绘制领域的现状,3D纹理这种充满未来气息的东西,也不能期待有多高的效率啊。