shader 开发工具之 glman简介

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 下载。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值