0

我正在实现一个关于铅笔渲染的算法。首先,我应该使用 Phong 着色来渲染模型以确定强度。然后我应该将纹理映射到渲染结果。

我将使用 opengl 和 cg 着色器进行多通道渲染。有人告诉我我应该尝试“渲染到纹理”。但是我不知道如何使用这种方法来获得我想要的效果。在我看来,我们应该首先使用这种方法来渲染网格,然后我们可以获得关于整个场景的 2D 纹理。现在我们已经将内容绘制到帧缓冲区,接下来我们应该渲染到屏幕上,对吧?但是如何使用渲染的纹理并对其进行一些后期处理呢?任何人都可以告诉我一些关于它的代码或链接吗?

4

2 回答 2

1

我制作了本教程,它可能会对您有所帮助:http ://www.opengl-tutorial.org/intermediate-tutorials/tutorial-14-render-to-texture/

但是,我认为,使用 RTT 对于您正在尝试做的事情来说太过分了。如果您需要纹理中的片段强度,那么您已经在着色器中拥有它,因此无需渲染两次......

也许这可能有用?http://www.ozone3d.net/demos_projects/toon-snow.php

于 2012-05-22T09:19:07.293 回答
0
  • 使用 Phong 着色渲染到纹理
  • 在全屏纹理四边形中再次将该纹理绘制到屏幕上,应用执行所需操作的着色器。

我假设您需要澄清 RTT 和使用它。

本质上,您的屏幕是一个帧缓冲区(非常类似于纹理);这是一天结束时的二维图像。RTT 的想法是捕获该 2D 图像。为此,最好的方法是使用帧缓冲对象 (FBO)(谷歌“帧缓冲对象”,然后点击第一个链接)。从这里,你有你的场景的 2D 图片(你应该通过保存到一个图像文件来检查它,它实际上是你想要的)。

获得图像后,您将设置2D 视图并将该图像用 800x600 四边形或您拥有的东西绘制屏幕上。绘图时,您使用片段程序(着色器),它将图像的亮度转换为灰度值。您可以输出它,也可以将其用作另一个“铅笔”纹理的偏移量。

于 2012-05-19T07:30:32.403 回答