2011-11-09 43 views
0

我需要在DirectX中实现MOD转换的帮助。两种纹理可用于转换发生。我最初考虑使用像素着色器,但无法继续。 http://www.stone.com/iMaginator/Manual/Mod.htmlDirectX实现Mod转换

上的做法的任何建议,将不胜感激:

国防部过渡的细节可以在下面的链接中找到。

+0

为什么像素着色器不起作用? – NickLH

+0

像素着色器的工作,但无法弄清楚如何继续(代码这样的效果)! – Trainee4Life

+0

您是否想要制作简单的幻灯片或淡入淡出过程或更高级的内容,例如您的帖子中的链接? –

回答

0

由于我对directx着色器的知识有限(我在2年内没有碰到过直接的x),所以我只能给你一个我将如何在opengl中实现它的例子。

我会设置3个纹理。第一个是背景图像,第二个是前景图像(孔要放入的图像),第三个是只有两种颜色(黑色和白色)的蒙版图像。然后我将第一遍绘制成背景图像作为全屏四元组。然后,我会用剩下的两个纹理(前景图像+蒙版)绘制另一个全屏四边形。

在opengl像素着色器中有“放弃”命令,它可以让你丢弃一个像素。所有您需要做的就是在第二个着色器中对两个纹理进行采样,并且如果蒙版像素为白色,则丢弃像素(从而显示背景),如果它是黑色,则显示纹理像素(来自前景图像) 。

然后你需要做的就是在渲染周期完成后,使用某种算法逐渐使越来越多的蒙版纹理变为白色,从而修改cpu端的蒙版纹理。

如果directX着色器具有与放弃命令类似的内容,则可能可以使其工作。希望这可以帮助。