RenderMonkey 练习 第三天 【OpenGL renderToTexture】

摘要:
渲染到纹理:1.新建一个OpenGL空effect;2.添加渲染目标纹理,AddTexture->AddRenderTexture3.添加一个渲染pass4.将pass0渲染到纹理上,addRenderTarget->renderTexture;5.在pass1中,引用纹理AddTextureObject->renderTexture;并改名为rttTexture;6.修改pass1的vertex

渲染到纹理:

1. 新建一个OpenGL 空effect;

2. 添加渲染目标纹理, Add Texture-> Add Render Texture

RenderMonkey 练习 第三天 【OpenGL renderToTexture】第1张

3. 添加一个渲染pass

4. 将pass0 渲染到纹理上, add Render Target->renderTexture;

RenderMonkey 练习 第三天 【OpenGL renderToTexture】第2张

5. 在pass1中,引用纹理 Add Texture Object->renderTexture; 并改名为rttTexture;

RenderMonkey 练习 第三天 【OpenGL renderToTexture】第3张

6. 修改pass1的vertex shader 和pixel shader;

顶点shader:

varying vec3 vNormal;
varying vec2 texcoord;
void main(void)
{
gl_Position = ftransform();
vNormal = gl_NormalMatrix * gl_Normal;
texcoord = gl_MultiTexCoord0.xy;
}

片元shader:

varying vec3 vNormal;
varying vec2 texcoord;
uniform sampler2D rttTexture;
void main(void)
{

#if 0

// 法线参与颜色计算,改善输出颜色
vec3 N = normalize( vNormal ) * 0.5 + 0.5;
gl_FragColor = vec4( N * (texture2D( rttTexture, texcoord ).rgb * 0.5 + 0.5), 1.0 );

#else
gl_FragColor = texture2D( rttTexture, texcoord ) + vec4(0.3,0.3,0.3,1.0);

#endif
}

7.效果图

RenderMonkey 练习 第三天 【OpenGL renderToTexture】第4张

使用法线参与颜色计算,改善输出颜色 的效果

vec3 N = normalize( vNormal ) * 0.5 + 0.5;
gl_FragColor = vec4( N * (texture2D( rttTexture, texcoord ).rgb * 0.5 + 0.5), 1.0 );

RenderMonkey 练习 第三天 【OpenGL renderToTexture】第5张

免责声明:文章转载自《RenderMonkey 练习 第三天 【OpenGL renderToTexture】》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇TListView使用方法1(转)canvas及lufylegend引擎下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

OpenGL代码学习(22)--绘制通道

注意:需要在配置好OpenGL的编程环境中运行下列代码,环境配置文章可参考: OpenGL在Mac项目上的配置下面的代码,直接放置在main.cpp文件中即可: #include "GLTools.h" #include "GLShaderManager.h" #include "GLFrustum.h" #include "GLBatch.h" #inc...

OpenGL编程逐步深入(四)Shaders

OpenGl 中的 Shader在一些中文书籍或资料中都被翻译为“着色器”, 单从字面意思也看不出Shader到底是什么,Shader实际上就是一段代码,用于完成特定功能的一个模块。Shader分为Vertex Shader(顶点着色器)和Pixel Shader(像素着色器)两种,其中Pixel Shader在本文中又被称为Fragment Shade...

基于OpenGL编写一个简易的2D渲染框架-04 绘制图片

阅读文章前需要了解的知识,纹理:https://learnopengl-cn.github.io/01%20Getting%20started/06%20Textures/ 过程简述:利用 FreeImage 库加载图像数据,再创建 OpenGL 纹理,通过 Canvas2D 画布绘制,最后又 Renderer 渲染器渲染 本来想用 soil 库加载图像数...

Qt OpenGL 图形字体的纹理映射

这次教程中,我们将在第14课的基础上创建带有纹理的字体,它真的很简单。也许你想知道如何才能给字体赋予纹理贴图?我们可以使用自动纹理坐标生成器,它会自动为字体上的每一个多边形生成纹理坐标。 这次课中我们还将使用Wingdings字体来显示一个海盗旗(骷髅头和十字骨头)的标志,为此我们需要修改buildFont()函数代码。如果你想显示文字的话,就不用改动第1...