glman 的眼睛位置(0,0,0),lookat (0,0,-1)。
glib file 文件描述:
#设置透视投影 fov 角,以度为单位。
Perspective 70
Translate -13 0 0 # 移动场景远离视点。世界坐标系下。
Vertex green.vert #使用的顶点着色器文件
Fragment green.frag #使用的片元着色器文件
Program Green Green <0 .5 1> #编译,链接上面的着色文件到Green的程序,并设置uniform变量参数。uniform float
# Green; <min current max> 这个uniform变量为一个范围值。
# sphere: 在场景中放置一个球,局部坐标进行平移。
Color [0 1 0]
Translate -1 0 0
WireSphere 1 #Wiresphere radius 创建一个线框球,半径为1.0
# cone:创建一个圆锥体
Color [1 1 0]
Translate 1.5 0 0
TransformBegin
WireCone 0.5 1. #Wirecone radius height
TransformEnd
Color [0 1 0]
Translate 2 0 0
TransformBegin
WireTorus .2 1.
TransformEnd
# teapot:
Color [0 1 1]
Translate 3 0 0
TransformBegin
WireTeapot
TransformEnd
#设置程序运行时提示的消息框
MessageBox Push the scene back using TransZ
MessageBox This shader alters the green color component
glib 文件主要是对构建的场景进行描述,对场景所应用的着色器。
运行时 .glib .vert .frag 等文件放到同一个文件夹下。点击界面上加载
这里演示一个改变输出片元的绿色分量,采用uniform变量的形式进行控制。
效果图:
注意如果默认看不到模型,可以左右旋转下相机。
文件源码:
glib
##OpenGL GLIB
Perspective 70
Translate -13 0 0 # move the scene away from the eye
Vertex green.vert
Fragment green.frag
Program Green Green <0 .5 1>
# sphere:
Color [0 1 0]
Translate -1 0 0
WireSphere 1
# cone:
Color [1 1 0]
Translate 1.5 0 0
TransformBegin
WireCone 0.5 1.
TransformEnd
# torus:
Color [0 1 0]
Translate 2 0 0
TransformBegin
WireTorus .2 1.
TransformEnd
# teapot:
Color [0 1 1]
Translate 3 0 0
TransformBegin
WireTeapot
TransformEnd
MessageBox Push the scene back using TransZ
MessageBox This shader alters the green color component
vert
varying vec4 Color;
void
main (void)
{
Color = gl_Color;
gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
}
frag
varying vec4 Color;
uniform float Green;
void
main( void )
{
gl_FragColor = Color;
gl_FragColor.g = Green;
}
工具下载地址:
关注微信公众号:
回复 0004 下载。