RenderMonkey 练习 第一天 【opengl 纹理】
础实例:
我们首先实现一个带纹理模型的显示,大体了解RenderMonkey的操作方式。
1. 打开RenderMonkey, 右击WorkSpace的Effect WorkSpace结点,选择Add Default Effect->OPENGL->OPENGL, 创建一个基础实例。
2. 添加一张纹理。 右击Default_DirectX_Effect, 选择Add Texture->Add 2DTexture->2DTexture 选择纹理fliedstone.tga。 然后把该节点改名为base
3. 右击pass0, 选择Add Texture Object->base, 并将该texture改名为baseMap (保证该texture与pixel shader里的sampler2D baseMap; 名字一致)
4. 修改stream Mapping; 双击stream Mapping;添加纹理坐标格式到映射表中

5. 双击Vertex Shader, 编写顶点shader代码如下:
varying vec2 vTexCoord;
void main(void)
{
vTexCoord = vec2(gl_MultiTexCoord0);
gl_Position = ftransform();
}
6. 双击Pixel Shader, 编写像素shader如下:
uniform sampler2D baseMap;
varying vec2 vTexCoord;
void main(void)
{
//gl_FragColor = vec4( 0.4, 0.0, 0.9, 1.0 );
gl_FragColor = texture2D(baseMap,vTexCoord);
}
7. 编译运行, 可以看到一个贴有贴图的球体
RenderMonkey 练习 第一天 【opengl 纹理】的更多相关文章
- [OpenGL红宝书]第一章 OpenGL概述
第一章 OpenGL概述 标签(空格分隔): OpenGL 第一章 OpenGL概述 1 什么是OpenGL 2 初识OpenGL程序 3 OpenGL语法 4 OpenGL渲染管线 41 准备向Op ...
- OpenGL 纹理贴图
前一节实例代码中有个贴图操作. 今天就简单说明一下纹理贴图... 为了使用纹理贴图.我们首先需要启用纹理贴图功能. 我们可以在Renderer实现的onSurfaceCreated中定义启用: // ...
- [OpenGL]纹理贴图实现 总结
实现步骤 第一步:设置所需要的OpenGL环境 设置上下文环境 删除已经存在的渲染的缓存 设置颜色缓存 设置帧缓存 清除缓存 设置窗口大小 开启功能 编译shander 使用program 获取sha ...
- openGL 纹理05
纹理(Texture) 为了能够把纹理映射(Map)到三角形上,我们需要指定三角形的每个顶点各自对应纹理的哪个部分. 这样每个顶点就会关联着一个纹理坐标(Texture Coordinate) 用来标 ...
- OpenGL: 纹理采样 texture sample
Sampler (GLSL) Sampler通常是在Fragment shader(片元着色器)内定义的,这是一个uniform类型的变量,即处理不同的片元时这个变量是一致不变的.一个sampler和 ...
- 第一课 opengl简介
1. 什么是opengl: opengl是图形硬件的一种软件接口. 2. opengl对场景中的图像进行渲染时所执行的主要图形操作 1)根据几何图元创建形状,从而建立物体的数学描述. 2)在三维空间中 ...
- OpenGL纹理
如果不用头文件,把所有东西堆在同一个cpp文件中,会出现“超出GPU内存的错误!” 1 //我们自己的着色器类 #ifndef SHADER_H #define SHADER_H #include & ...
- OpenGL纹理上下颠倒翻转的三种解决办法
http://blog.csdn.net/narutojzm1/article/details/51940817 综述 在使用OpenGL函数加载纹理到图形时,经常遇到纹理上下颠倒的问题.原因是因为O ...
- OpenGL纹理高级
矩形纹理 对于二维纹理来说,除了GL_TEXTURE_2D之外,使用GL_TEXTURE_RECTANGLE就可以使用矩形纹理. 矩形纹理几大特点: 不能Mip,只能加载glTexImage2D的le ...
随机推荐
- 160多条Windows 7 “运行”命令
160多条Windows 7 “运行”命令: 删除或更改应用程序 = control appwiz.cpl 添加设备 = devicepairingwizard 蓝牙文件传输 = fsquirt ...
- UVALIVE 3939 Plucking fruits
并查集解决.代码跑的有够慢.应该可以通过边权排序优化. #include <map> #include <set> #include <list> #include ...
- ReadOnly与Enabled
txtDlrCode.ReadOnly = true; 1.当设置为只读,文本框有点击事件,点击该文本框还是可以响应点击事件 2.设置为只读,C#后台无法取得文本框的值,txtDlrCode.Text ...
- String类的常见方法的使用案例
String类的常见方法的使用案例 //使用指定的字符串替换当前字符串中指定的内容 //将helloworld中的o替换为a String s="HelloWorld"; Stri ...
- Selenium2+python自动化48-登录方法(参数化)【转载】
前言 登录这个场景在写用例的时候经常会有,我们可以把登录封装成一个方法,然后把账号和密码参数化,这样以后用的登录的时候,只需调用这个方法就行了 一.登录方法 1.把输入账号.输入密码.点击登录按钮三个 ...
- 第二篇:zone(区域)
什么是区域? 网络区域定义网络连接的信任级别(the level of trust for network connections).一个网络连接只能是一个区域的一部分,但一个区域可以包含许多网络连接 ...
- Ubuntu-16.04安装Xdebug-2.2.5及相关介绍
Xdebug是一个开放源代码的PHP程序调试器(即一个Debug工具),可以用来跟踪,调试和分析PHP程序的运行状况.在日常开发中,我们会使用如 print_r() var_dump()等函数来进行调 ...
- 我从没理解js的闭包,直到他人向我这么解释。。。
前段时间根据执行上下文写过一次闭包,但是写的简陋些.昨天在twitter上看到这篇文章,感觉背包的比喻挺恰当的.所以就翻译了. 这篇文章有些啰嗦,但是讲解很细,希望还是耐心看完.也欢迎指出错误. 原地 ...
- CF 996B World Cup 【找规律/模拟】
CF [题意]:圆形球场有n个门,Allen想要进去看比赛.Allen采取以下方案进入球场:开始Allen站在第一个门,如果当前门前面有人Allen会花费单位时间走到下一个门,如果没人Allen从这个 ...
- hdu6049
hdu6049 题意 给出一串由 \([1, n]\) 组成的 \(n\) 个数,每个数字都不相同.现在要尽可能的分成多个块,每个块内的数可以任意排序,且分完块后可以交换两个块的位置,问使得最后序列有 ...