本文整理汇总了Golang中github.com/go-gl/gl.ShadeModel函数的典型用法代码示例。如果您正苦于以下问题:Golang ShadeModel函数的具体用法?Golang ShadeModel怎么用?Golang ShadeModel使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了ShadeModel函数的18个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: initGL
func initGL() (err error) {
goph, err := os.Open(texturefiles[0])
if err != nil {
panic(err)
}
defer goph.Close()
texture, err = createTexture(goph)
gl.ShadeModel(gl.SMOOTH)
gl.ClearColor(0, 0, 0, 0.5)
gl.ClearDepth(1)
gl.Hint(gl.PERSPECTIVE_CORRECTION_HINT, gl.NICEST)
gl.BlendFunc(gl.SRC_ALPHA, gl.ONE) // 设置混色函数取得半透明效果
gl.Enable(gl.BLEND)
gl.Enable(gl.TEXTURE_2D)
rand.Seed(time.Now().Unix())
for loop = 0; loop < num; loop++ {
star[loop].angle = 0.0
star[loop].dist = float32(loop) / num * 5
//fmt.Println(loop, star[loop].dist)
star[loop].r = uint8(rand.Int() % 256)
star[loop].g = uint8(rand.Int() % 256)
star[loop].b = uint8(rand.Int() % 256)
}
return
}
开发者ID:nzlov,项目名称:gogl,代码行数:30,代码来源:09.go
示例2: initGL
func initGL() (err error) {
if err = loadTextures(); err != nil {
return
}
gl.ShadeModel(gl.SMOOTH) /// 启用阴影平滑,设置平滑着色,阴影平滑通过多边形精细的混合色彩,并对外部光进行平滑
/*
色彩值的范围从0.0f到1.0f。0.0f代表最黑的情况,1.0f就是最亮的情况。
glClearColor 后的第一个参数是Red Intensity(红色分量),第二个是绿色,第三个是蓝色。最大值也是1.0f,代表特定颜色分量的最亮情况。
最后一个参数是Alpha值。当它用来清除屏幕的时候,我们不用关心第四个数字。现在让它为0.0f.
*/
gl.ClearColor(0, 0, 0, 0) ///设置清除屏幕时所用的颜色,黑色背景
/*
接下来的三行必须做的是关于depth buffer(深度缓存)的。将深度缓存设想为屏幕后面的层。
深度缓存不断的对物体进入屏幕内部有多深进行跟踪。
本程序其实没有真正使用深度缓存,但几乎所有在屏幕上显示3D场景OpenGL程序都使用深度缓存。
它的排序决定那个物体先画。这样您就不会将一个圆形后面的正方形画到圆形上来。深度缓存是OpenGL十分重要的部分。
*/
gl.ClearDepth(1) ///设置深度缓存
gl.DepthFunc(gl.LEQUAL) ///所作深度测试的类型
gl.Hint(gl.PERSPECTIVE_CORRECTION_HINT, gl.NICEST) ///告诉系统对透视进行修正,这会十分轻微的影响性能。但使得透视图看起来好一点
gl.Enable(gl.DEPTH_TEST) ///启用深度测试
gl.Enable(gl.TEXTURE_2D) ///启用纹理映射
return
}
开发者ID:bonly,项目名称:exercise,代码行数:28,代码来源:20110517_nehe06.go
示例3: initGL
func initGL() (err error) {
if err = loadTextures(); err != nil {
return
}
gl.ShadeModel(gl.SMOOTH)
gl.ClearColor(0, 0, 0, 0)
gl.ClearDepth(1)
gl.DepthFunc(gl.LEQUAL)
gl.Hint(gl.PERSPECTIVE_CORRECTION_HINT, gl.NICEST)
gl.Enable(gl.TEXTURE_2D)
gl.Enable(gl.DEPTH_TEST)
//alpha通道的值为 0.0意味着物体材质是完全透明的。1.0 则意味着完全不透明
//以全亮度绘制此物体,并对其进行50%的alpha混合(半透明)。
//当混合选项打开时,此物体将会产生50%的透明效果
gl.Color4f(1, 1, 1, 0.5) //全亮度, 50% Alpha 混合
gl.BlendFunc(gl.SRC_ALPHA, gl.ONE) //基于源象素alpha通道值的半透明混合函数
gl.Lightfv(gl.LIGHT1, gl.AMBIENT, ambient)
gl.Lightfv(gl.LIGHT1, gl.AMBIENT, diffuse)
gl.Lightfv(gl.LIGHT1, gl.POSITION, lightpos)
gl.Enable(gl.LIGHT1)
return
}
开发者ID:bonly,项目名称:exercise,代码行数:25,代码来源:20110519_nehe08.go
示例4: Init
// program & OpenGL initialization
func Init() {
gl.ShadeModel(gl.SMOOTH) // 启用阴影平滑
gl.ClearColor(0.0, 0.0, 0.0, 0.0) // 黑色背景
gl.ClearDepth(1.0) // 设置深度缓存
gl.Enable(gl.DEPTH_TEST) // 启用深度测试
gl.DepthFunc(gl.LEQUAL) // 所作深度测试的类型
gl.Hint(gl.PERSPECTIVE_CORRECTION_HINT, gl.NICEST) // 告诉系统对透视进行修正
}
开发者ID:nzlov,项目名称:gogl,代码行数:9,代码来源:04.go
示例5: initGL
func initGL() {
gl.ShadeModel(gl.SMOOTH)
gl.ClearColor(0, 0, 0, 0)
gl.ClearDepth(1)
gl.Enable(gl.DEPTH_TEST)
gl.DepthFunc(gl.LEQUAL)
gl.Hint(gl.PERSPECTIVE_CORRECTION_HINT, gl.NICEST)
}
开发者ID:jayschwa,项目名称:examples,代码行数:8,代码来源:main.go
示例6: initGL
func initGL() {
gl.ShadeModel(gl.SMOOTH) /// 设置平滑着色?(是默认的)
//gl.ShadeModel(gl.FLAT); /// 即单色,使用最后一个点所用的颜色
gl.ClearColor(0, 0, 0, 0)
gl.ClearDepth(1)
gl.Enable(gl.DEPTH_TEST)
gl.DepthFunc(gl.LEQUAL)
gl.Hint(gl.PERSPECTIVE_CORRECTION_HINT, gl.NICEST)
}
开发者ID:bonly,项目名称:exercise,代码行数:9,代码来源:20110516_nehe04.go
示例7: copiedInit
func copiedInit() {
gl.ClearColor(0, 0, 0, 0)
gl.ShadeModel(gl.FLAT)
gl.Enable(gl.CULL_FACE)
gl.Viewport(320, 240, 640, 480)
gl.MatrixMode(gl.PROJECTION)
gl.LoadIdentity()
gl.Frustum(-1, 1, -1, 1, 1.5, 20)
gl.MatrixMode(gl.MODELVIEW)
}
开发者ID:srm88,项目名称:blocks,代码行数:10,代码来源:main.go
示例8: setupGL
func setupGL(w, h int) {
gl.Viewport(0, 0, w, h)
gl.MatrixMode(gl.PROJECTION)
gl.LoadIdentity()
gl.Ortho(0, float64(w), float64(h), 0, 0, 1)
gl.ShadeModel(gl.SMOOTH)
gl.ClearColor(1, 1, 1, 0)
gl.Enable(gl.BLEND)
gl.BlendFunc(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA)
gl.Disable(gl.DEPTH_TEST)
gl.Hint(gl.LINE_SMOOTH_HINT|gl.LINE_SMOOTH_HINT, gl.NICEST)
}
开发者ID:phaikawl,项目名称:gosui,代码行数:13,代码来源:window.go
示例9: initGL
func initGL() (err error) {
if err = loadTextures(); err != nil {
return
}
gl.ShadeModel(gl.SMOOTH)
gl.ClearColor(0, 0, 0, 0)
gl.ClearDepth(1)
gl.DepthFunc(gl.LEQUAL)
gl.Hint(gl.PERSPECTIVE_CORRECTION_HINT, gl.NICEST)
gl.Enable(gl.DEPTH_TEST)
gl.Enable(gl.TEXTURE_2D)
return
}
开发者ID:hsalokor,项目名称:examples,代码行数:14,代码来源:main.go
示例10: initGL
func initGL() (err error) {
gl.Init()
gl.ShadeModel(gl.SMOOTH)
gl.ClearColor(0, 0, 0, 0)
gl.ClearDepth(1)
gl.BlendFunc(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA)
gl.Hint(gl.PERSPECTIVE_CORRECTION_HINT, gl.NICEST)
gl.DepthFunc(gl.NEVER)
gl.Enable(gl.BLEND)
gl.DepthMask(true)
//loadShader()
return
}
开发者ID:gulinfang,项目名称:GarageEngine,代码行数:15,代码来源:Engine.go
示例11: InitGL
func InitGL(width, height int) {
//enable vertical sync if the card supports it
glfw.SetSwapInterval(1)
gl.ShadeModel(gl.SMOOTH)
gl.ClearColor(0.1, 0.1, 0.1, 1.0)
gl.Enable(gl.TEXTURE_2D)
gl.Enable(gl.CULL_FACE)
gl.Enable(gl.DEPTH_TEST)
gl.DepthFunc(gl.LEQUAL)
gl.Hint(gl.PERSPECTIVE_CORRECTION_HINT, gl.NICEST)
SetViewport(width, height)
glfw.SetWindowSizeCallback(SetViewport)
glfw.SetKeyCallback(OnKey)
}
开发者ID:samnm,项目名称:goblocks,代码行数:19,代码来源:renderer.go
示例12: initGL
func initGL() (err error) {
goph, err := os.Open(texturefiles[0])
if err != nil {
panic(err)
}
defer goph.Close()
texture, err = createTexture(goph)
gl.ShadeModel(gl.SMOOTH)
gl.ClearColor(0, 0, 0, 0)
gl.ClearDepth(1)
gl.DepthFunc(gl.LEQUAL)
gl.Hint(gl.PERSPECTIVE_CORRECTION_HINT, gl.NICEST)
gl.Enable(gl.DEPTH_TEST)
gl.Enable(gl.TEXTURE_2D)
return
}
开发者ID:nzlov,项目名称:gogl,代码行数:19,代码来源:06.go
示例13: initGL
// initGL initializes GLFW and OpenGL.
func initGL() error {
err := glfw.Init()
if err != nil {
return err
}
glfw.OpenWindowHint(glfw.FsaaSamples, 4)
glfw.OpenWindowHint(glfw.WindowNoResize, gl.TRUE)
err = glfw.OpenWindow(512, 512, 8, 8, 8, 8, 32, 0, glfw.Windowed)
if err != nil {
glfw.Terminate()
return err
}
glfw.SetWindowTitle("Meshbuffer 3D example")
glfw.SetSwapInterval(1)
glfw.SetWindowSizeCallback(onResize)
glfw.SetKeyCallback(onKey)
gl.Init()
if err = glh.CheckGLError(); err != nil {
return err
}
gl.Enable(gl.DEPTH_TEST)
gl.Enable(gl.MULTISAMPLE)
gl.Disable(gl.LIGHTING)
//gl.ClearColor(0.2, 0.2, 0.23, 1.0)
gl.ClearColor(0, 0, 0, 1.0)
gl.ShadeModel(gl.SMOOTH)
gl.LineWidth(2)
gl.ClearDepth(1)
gl.DepthFunc(gl.LEQUAL)
gl.Hint(gl.PERSPECTIVE_CORRECTION_HINT, gl.NICEST)
gl.ColorMaterial(gl.FRONT_AND_BACK, gl.AMBIENT_AND_DIFFUSE)
return nil
}
开发者ID:nzlov,项目名称:examples,代码行数:40,代码来源:main.go
示例14: initGL
func initGL() (err error) {
goph, err := os.Open(texturefiles)
if err != nil {
panic(err)
}
defer goph.Close()
texture, err = createTexture(goph)
gl.Enable(gl.TEXTURE_2D)
gl.BlendFunc(gl.SRC_ALPHA, gl.ONE) // 设置混色函数取得半透明效果
gl.ClearColor(0, 0, 0, 0.0)
gl.ClearDepth(1)
gl.DepthFunc(gl.LESS)
gl.Enable(gl.DEPTH_TEST)
gl.ShadeModel(gl.SMOOTH)
gl.Hint(gl.PERSPECTIVE_CORRECTION_HINT, gl.NICEST)
SetupWorld()
return
}
开发者ID:nzlov,项目名称:gogl,代码行数:23,代码来源:10.go
示例15: initGL
func initGL() (err error) {
if err = loadTextures(); err != nil {
return
}
gl.ShadeModel(gl.SMOOTH) ///阴影模式设为平滑阴影
gl.ClearColor(0, 0, 0, 0) ///背景色设为黑色
gl.ClearDepth(1)
gl.DepthFunc(gl.LEQUAL)
gl.Hint(gl.PERSPECTIVE_CORRECTION_HINT, gl.NICEST) ///启用优化透视计算
gl.Enable(gl.DEPTH_TEST) ///启用深度测试
gl.Enable(gl.TEXTURE_2D) ///启用2D纹理映射
/*
创建光源的数组。我们将使用两种不同的光。
第一种称为环境光。环境光来自于四面八方。所有场景中的对象都处于环境光的照射中。
第二种类型的光源叫做漫射光。漫射光由特定的光源产生,并在您的场景中的对象表面上产生反射。
处于漫射光直接照射下的任何对象表面都变得很亮,而几乎未被照射到的区域就显得要暗一些。
这样在我们所创建的木板箱的棱边上就会产生的很不错的阴影效果。
创建光源的过程和颜色的创建完全一致。前三个参数分别是RGB三色分量,最后一个是alpha通道参数。
因此,下面的代码我们得到的是半亮(0.5f)的白色环境光。如果没有环境光,未被漫射光照到的地方会变得十分黑暗。
*/
gl.Lightfv(gl.LIGHT1, gl.AMBIENT, ambient) //设置环境光(半亮度环境光)
//gl.Lightfv(gl.LIGHT1, gl.AMBIENT, diffuse); //设置漫射光
gl.Lightfv(gl.LIGHT1, gl.DIFFUSE, diffuse) //设置漫射光(全亮度白光)
gl.Lightfv(gl.LIGHT1, gl.POSITION, lightpos) //设置光源位置
gl.Enable(gl.LIGHT1) //启用一号光源
/*
光源的位置。前三个参数和glTranslate中的一样。依次分别是XYZ轴上的位移。
由于我们想要光线直接照射在木箱的正面,所以XY轴上的位移都是0.0f。
第三个值是Z轴上的位移。为了保证光线总在木箱的前面,所以我们将光源的位置朝着观察者(就是您哪。)挪出屏幕。
我们通常将屏幕也就是显示器的屏幕玻璃所处的位置称作Z轴的0.0f点。所以Z轴上的位移最后定为2.0f。
假如您能够看见光源的话,它就浮在您显示器的前方。当然,如果木箱不在显示器的屏幕玻璃后面的话,您也无法看见箱子。
*/
return
}
开发者ID:bonly,项目名称:exercise,代码行数:36,代码来源:20110518_nehe07.go
示例16: gear
func gear(inner_radius, outer_radius, width float64, teeth int, tooth_depth float64) {
var i int
var r0, r1, r2 float64
var angle, da float64
var u, v, len float64
r0 = inner_radius
r1 = outer_radius - tooth_depth/2.0
r2 = outer_radius + tooth_depth/2.0
da = 2.0 * math.Pi / float64(teeth) / 4.0
gl.ShadeModel(gl.FLAT)
gl.Normal3d(0.0, 0.0, 1.0)
/* draw front face */
gl.Begin(gl.QUAD_STRIP)
for i = 0; i <= teeth; i++ {
angle = float64(i) * 2.0 * math.Pi / float64(teeth)
gl.Vertex3d(r0*math.Cos(angle), r0*math.Sin(angle), width*0.5)
gl.Vertex3d(r1*math.Cos(angle), r1*math.Sin(angle), width*0.5)
if i < teeth {
gl.Vertex3d(r0*math.Cos(angle), r0*math.Sin(angle), width*0.5)
gl.Vertex3d(r1*math.Cos(angle+3*da), r1*math.Sin(angle+3*da), width*0.5)
}
}
gl.End()
/* draw front sides of teeth */
gl.Begin(gl.QUADS)
da = 2.0 * math.Pi / float64(teeth) / 4.0
for i = 0; i < teeth; i++ {
angle = float64(i) * 2.0 * math.Pi / float64(teeth)
gl.Vertex3d(r1*math.Cos(angle), r1*math.Sin(angle), width*0.5)
gl.Vertex3d(r2*math.Cos(angle+da), r2*math.Sin(angle+da), width*0.5)
gl.Vertex3d(r2*math.Cos(angle+2*da), r2*math.Sin(angle+2*da), width*0.5)
gl.Vertex3d(r1*math.Cos(angle+3*da), r1*math.Sin(angle+3*da), width*0.5)
}
gl.End()
gl.Normal3d(0.0, 0.0, -1.0)
/* draw back face */
gl.Begin(gl.QUAD_STRIP)
for i = 0; i <= teeth; i++ {
angle = float64(i) * 2.0 * math.Pi / float64(teeth)
gl.Vertex3d(r1*math.Cos(angle), r1*math.Sin(angle), -width*0.5)
gl.Vertex3d(r0*math.Cos(angle), r0*math.Sin(angle), -width*0.5)
if i < teeth {
gl.Vertex3d(r1*math.Cos(angle+3*da), r1*math.Sin(angle+3*da), -width*0.5)
gl.Vertex3d(r0*math.Cos(angle), r0*math.Sin(angle), -width*0.5)
}
}
gl.End()
/* draw back sides of teeth */
gl.Begin(gl.QUADS)
da = 2.0 * math.Pi / float64(teeth) / 4.0
for i = 0; i < teeth; i++ {
angle = float64(i) * 2.0 * math.Pi / float64(teeth)
gl.Vertex3d(r1*math.Cos(angle+3*da), r1*math.Sin(angle+3*da), -width*0.5)
gl.Vertex3d(r2*math.Cos(angle+2*da), r2*math.Sin(angle+2*da), -width*0.5)
gl.Vertex3d(r2*math.Cos(angle+da), r2*math.Sin(angle+da), -width*0.5)
gl.Vertex3d(r1*math.Cos(angle), r1*math.Sin(angle), -width*0.5)
}
gl.End()
/* draw outward faces of teeth */
gl.Begin(gl.QUAD_STRIP)
for i = 0; i < teeth; i++ {
angle = float64(i) * 2.0 * math.Pi / float64(teeth)
gl.Vertex3d(r1*math.Cos(angle), r1*math.Sin(angle), width*0.5)
gl.Vertex3d(r1*math.Cos(angle), r1*math.Sin(angle), -width*0.5)
u = r2*math.Cos(angle+da) - r1*math.Cos(angle)
v = r2*math.Sin(angle+da) - r1*math.Sin(angle)
len = math.Sqrt(u*u + v*v)
u /= len
v /= len
gl.Normal3d(v, -u, 0.0)
gl.Vertex3d(r2*math.Cos(angle+da), r2*math.Sin(angle+da), width*0.5)
gl.Vertex3d(r2*math.Cos(angle+da), r2*math.Sin(angle+da), -width*0.5)
gl.Normal3d(math.Cos(angle), math.Sin(angle), 0.0)
gl.Vertex3d(r2*math.Cos(angle+2*da), r2*math.Sin(angle+2*da), width*0.5)
gl.Vertex3d(r2*math.Cos(angle+2*da), r2*math.Sin(angle+2*da), -width*0.5)
u = r1*math.Cos(angle+3*da) - r2*math.Cos(angle+2*da)
v = r1*math.Sin(angle+3*da) - r2*math.Sin(angle+2*da)
gl.Normal3d(v, -u, 0.0)
gl.Vertex3d(r1*math.Cos(angle+3*da), r1*math.Sin(angle+3*da), width*0.5)
gl.Vertex3d(r1*math.Cos(angle+3*da), r1*math.Sin(angle+3*da), -width*0.5)
gl.Normal3d(math.Cos(angle), math.Sin(angle), 0.0)
}
gl.Vertex3d(r1*math.Cos(0), r1*math.Sin(0), width*0.5)
gl.Vertex3d(r1*math.Cos(0), r1*math.Sin(0), -width*0.5)
gl.End()
//.........这里部分代码省略.........
开发者ID:jayschwa,项目名称:examples,代码行数:101,代码来源:main.go
示例17: main
func main() {
if err := glfw.Init(); err != nil {
log.Fatal(err.Error())
}
if err := glfw.OpenWindow(800, 600, 8, 8, 8, 8, 32, 0, glfw.Windowed); err != nil {
glfw.Terminate()
log.Fatal(err.Error())
}
glfw.SetWindowTitle("Landscapes")
glfw.SetSwapInterval(1)
m := GenerateMap(160, 160, 16)
m.BuildVertices()
gl.Enable(gl.LIGHT0)
gl.Enable(gl.LIGHTING)
gl.Lightfv(gl.LIGHT0, gl.POSITION, []float32{0, 1, 0.2, 0})
gl.Lightfv(gl.LIGHT0, gl.AMBIENT, []float32{0.0, 0.0, 0.0, 1})
gl.Lightfv(gl.LIGHT0, gl.DIFFUSE, []float32{0.75, 0.75, 0.75, 1})
gl.Lightfv(gl.LIGHT0, gl.SPECULAR, []float32{1, 1, 1, 1})
gl.ShadeModel(gl.SMOOTH)
gl.ClearColor(0.1, 0.05, 0.0, 1.0)
far := 4096.0
fov := 60.0
gl.MatrixMode(gl.PROJECTION)
gl.LoadIdentity()
glu.Perspective(fov, 800.0/600, 1.0, far)
gl.MatrixMode(gl.MODELVIEW)
rot := float32(0.0)
for glfw.WindowParam(glfw.Opened) == 1 {
rot += 0.125
gl.Clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT)
gl.LoadIdentity()
gl.Enable(gl.DEPTH_TEST)
gl.DepthFunc(gl.LEQUAL)
cx := float32(m.width*m.gridSize) * 0.5
cy := float32(m.maxHeight) * 0.15
cz := float32(m.depth*m.gridSize) * 0.5
gl.Translatef(0, 0, -2000)
gl.Rotatef(30, 1, 0, 0)
gl.Rotatef(rot, 0, 1, 0)
gl.Translatef(-cx, -cy, -cz)
m.Draw()
glfw.SwapBuffers()
}
glfw.Terminate()
}
开发者ID:sixthgear,项目名称:landscapes,代码行数:64,代码来源:main.go
示例18: main
func main() {
var err error
if err = glfw.Init(); err != nil {
fmt.Fprintf(os.Stderr, "[e] %v\n", err)
return
}
defer glfw.Terminate()
w, h := 1980, 1080
// w, h := 1280, 768
if err = glfw.OpenWindow(w, h, 8, 8, 8, 16, 0, 32, glfw.Fullscreen); err != nil {
fmt.Fprintf(os.Stderr, "[e] %v\n", err)
return
}
defer glfw.CloseWindow()
glfw.SetSwapInterval(1)
glfw.SetWindowTitle("Debris")
quadric = glu.NewQuadric()
gl.Enable(gl.CULL_FACE)
gl.Enable(gl.DEPTH_TEST)
gl.DepthFunc(gl.LEQUAL)
gl.Enable(gl.NORMALIZE)
gl.Enable(gl.BLEND)
gl.BlendFunc(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA)
gl.ShadeModel(gl.SMOOTH)
gl.Enable(gl.LIGHTING)
var (
ambient = []float32{0.1, 0.3, 0.6, 1}
diffuse = []float32{1, 1, 0.5, 1}
specular = []float32{0.4, 0.4, 0.4, 1}
light_position = []float32{1, 0, 0, 0}
// mat_specular []float32 = []float32{1, 1, 0.5, 1}
mat_specular = []float32{1, 1, 0.75, 1}
mat_shininess = float32(120)
// light_position []float32 = []float32{0.0, 0.0, 1.0, 0.0}
)
const (
fov = 1.1 // degrees
znear = 145
zfar = 155
camera_z_offset = -150
camera_x_rotation = 0 // degrees
// camera_x_rotation = 20 // degrees
starfield_fov = 45
faces = 1000
earth_radius = 1
)
gl.Lightfv(gl.LIGHT1, gl.AMBIENT, ambient)
gl.Lightfv(gl.LIGHT1, gl.DIFFUSE, diffuse)
gl.Lightfv(gl.LIGHT1, gl.SPECULAR, specular)
gl.Lightfv(gl.LIGHT1, gl.POSITION, light_position)
gl.Enable(gl.LIGHT1)
mat_emission := []float32{0, 0, 0.1, 1}
gl.Materialfv(gl.FRONT_AND_BACK, gl.EMISSION, mat_emission)
gl.Materialfv(gl.FRONT_AND_BACK, gl.SPECULAR, mat_specular)
gl.Materialf(gl.FRONT_AND_BACK, gl.SHININESS, mat_shininess)
gl.ClearColor(0.02, 0.02, 0.02, 1)
gl.ClearDepth(1)
gl.ClearStencil(0)
gl.Clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT)
b := createBuffer()
planetoids := []*Planetoid{}
for i := 0; i < 1000; i++ {
p := &Planetoid{
apogee: 1.2 + rand.Float64()*0.7,
perigee: 1.5,
// inclination: 45,
inclination: rand.Float64()*20 - 10,
// inclination: 0,
phase0: rand.Float64() * 360,
rising_node: rand.Float64() * 10,
phase: 0,
// radius: rand.Float32()*0.05 + 0.01, //float32(r),
radius: rand.Float32()*0.0125 + 0.005, //float32(r),
// quadric: glu.NewQuadric(),
circle: b,
}
planetoids = append(planetoids, p)
}
// Initial projection matrix:
//.........这里部分代码省略.........
开发者ID:pwaller,项目名称:debris,代码行数:101,代码来源:main.go
注:本文中的github.com/go-gl/gl.ShadeModel函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论