Math 使用direct3d投影目标环

Math 使用direct3d投影目标环,math,3d,directx,direct3d,Math,3d,Directx,Direct3d,在我正在制作的一个业余3d游戏中,我试图在“单位”下方的地面上画一个“目标环”。基本上,我想在单位下方的地面上投射一个亮红色图案的圆环 我能想到的唯一办法就是这样- 把世界画成正常的样子 画 第二次来到这个世界,却在我的心里 顶点着色器我有世界x,y,z 顶点的坐标,我可以 传入 突出显示的单位-所以我可以 计算u,v坐标 在我的项目中,纹理应该是 这是世界上最重要的一点 顶点 然后,我将使用像素着色器从目标环纹理中拾取像素,并将它们混合到先前绘制的世界中 我相信这应该很容易,也应该可行,但它需

在我正在制作的一个业余3d游戏中,我试图在“单位”下方的地面上画一个“目标环”。基本上,我想在单位下方的地面上投射一个亮红色图案的圆环

我能想到的唯一办法就是这样-

  • 把世界画成正常的样子

  • 画 第二次来到这个世界,却在我的心里 顶点着色器我有世界x,y,z 顶点的坐标,我可以 传入 突出显示的单位-所以我可以 计算u,v坐标 在我的项目中,纹理应该是 这是世界上最重要的一点 顶点

    然后,我将使用像素着色器从目标环纹理中拾取像素,并将它们混合到先前绘制的世界中

  • 我相信这应该很容易,也应该可行,但它需要我画两次整个可见世界,因为很难确定目标环可能落在哪些多边形上。两次绘制整个世界,一次是绘制普通照明纹理地面,然后再绘制目标环,这似乎是一个很大的开销


    有没有更好的方法是我缺少的?

    是你的朋友。

    是你的朋友。

    像素着色器的作用不是允许在第一次通过时进行这种计算吗?我想我可以将两者结合成一个像素着色器。像素着色器的作用不是允许在第一次通过时进行这种计算吗?我想我可以将两者合并为一个像素着色器。谢谢。这就是投影纹理贴图的工作原理吗?以像素的x、y、z位置为例,试着找出哪个纹理像素被映射到它上面?@JohnB:它的工作原理是设置投影的位置和角度,然后将纹理投影到任何挡在投影路上的对象上。显然,如果在对象上绘制带有投影纹理的对象,它们也会获得投影到它们上的纹理,但如果您只想在地形上绘制纹理,则仅在地形上运行投影纹理。它很有效而且很容易设置。谢谢。这就是投影纹理贴图的工作原理吗?以像素的x、y、z位置为例,试着找出哪个纹理像素被映射到它上面?@JohnB:它的工作原理是设置投影的位置和角度,然后将纹理投影到任何挡在投影路上的对象上。显然,如果在对象上绘制带有投影纹理的对象,它们也会获得投影到它们上的纹理,但如果您只想在地形上绘制纹理,则仅在地形上运行投影纹理。它非常有效,而且非常容易设置。