摘要:
随机数在CPU中可以有rand()这类函数,但是GPU中却没有。如果想直接在GPU中使用随机数?有一个折中的方法,先再CPU中产生一个随机数数组,然后写入一个texture1D中。最后再利用GPU来提取。 下面来看看具体代码: 先看Directx的部分。1:主要在Directx中生成并初始化一个存储了随机数的纹理ID3D11Texture1Dm_pRanTex和它的“指针”ID3D11ShaderResourceViewm_pRanTexRV。HRESULTParticleSystem::BuildRandomTex(){HRESULThr=S_OK;D3DXVECTOR4randomVal. 阅读全文
摘要:
公告板是游戏里一很常见的技术,用来绘制树木,草地,爆炸效果等。说白了就求一个矩形框,然后贴一张照片上去。(Ps下由于个人博客所以讲的比较随便,有时候讲billboard,有时候公告板,有时候一个矩形框,都指差不多一个东西) 而GeometryShader则是Directx10里面推出的一个新的Shader能够处理完整的几何模型。想典型VertexShader只知道并处理顶点,而GeometryShader知道顶点,直线和三角形并处理它们。 这里用个Demo阐述下如何用GeomtryShader在GPU中绘制Billboard公告板。 1先讲下求公告板的算法。说白了就是求它的世界坐标系。 假设. 阅读全文