【NoisyHeart的炼成】Part2:Beam效果

Beam光束效果(为了应付老师的数量要求,无奈地分篇讲述)


Beam1

NumControlPoint = 24;

TessellationAmount = 1;

FaceToCamera = false;



Beam 2

NumControlPoint = 10;

TessellationAmount = 10;

FaceToCamera = false;

Beam 3

NumControlPoint = 10;

TessellationAmount = 1;

FaceToCamera = true;


维护一个VertexBuffer遵循TRIANGLESTRIP规则,渲染前用ID3D11DeviceContext::IAGetPrimitiveTopology Method设置D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP就可以得到粗糙的Beam1光束。当然Beam1还是用到了噪声算法来驱动顶点的位置变化,这一步的实现,我交给了GPU(Compute Shader)来完成。

但是要想得到平滑的光束效果,我们需要使用DirectX11的新Shader技术,Beam2中我为了减少GPU开销,只对U方向进行多次细分,在V方向只进行一次细分,同时U方向是贝塞尔曲线插值,V方向是简单线性插值。

 

至于DirectX11 Shader的具体使用且听下回分解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值