本文整理汇总了Golang中github.com/banthar/gl.Vertex3f函数的典型用法代码示例。如果您正苦于以下问题:Golang Vertex3f函数的具体用法?Golang Vertex3f怎么用?Golang Vertex3f使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了Vertex3f函数的19个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: Draw
func (s *Sprite) Draw(x, y, angle, scale float32, blend bool) {
gl.Enable(gl.TEXTURE_2D)
gl.Disable(gl.COLOR_MATERIAL)
if blend {
gl.BlendFunc(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA)
gl.Enable(gl.BLEND)
} else {
gl.Disable(gl.BLEND)
gl.BlendFunc(gl.ONE, gl.ZERO)
}
gl.MatrixMode(gl.MODELVIEW)
gl.LoadIdentity()
gl.Translatef(x, y, 0)
gl.Rotatef(angle*360/(2*math.Pi), 0, 0, 1)
gl.Scalef(scale, scale, 1)
s.tex.Bind(gl.TEXTURE_2D)
gl.Begin(gl.QUADS)
gl.Color3f(1, 1, 1)
gl.TexCoord2d(0, 0)
gl.Vertex3f(-0.5*s.width, -0.5*s.height, 0)
gl.TexCoord2d(1, 0)
gl.Vertex3f(0.5*s.width, -0.5*s.height, 0)
gl.TexCoord2d(1, 1)
gl.Vertex3f(0.5*s.width, 0.5*s.height, 0)
gl.TexCoord2d(0, 1)
gl.Vertex3f(-0.5*s.width, 0.5*s.height, 0)
gl.End()
gl.Disable(gl.TEXTURE_2D)
gl.Disable(gl.BLEND)
}
开发者ID:mfpi,项目名称:lecture-hall-games,代码行数:31,代码来源:utils.go
示例2: Draw
// Render stuff
func Draw() {
gl.Clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT)
gl.LoadIdentity()
gl.Translatef(-1.5, 0, -6)
gl.Begin(gl.TRIANGLES)
gl.Color3f(1, 0, 0)
gl.Vertex3f(0, 1, 0)
gl.Color3f(0, 1, 0)
gl.Vertex3f(-1, -1, 0)
gl.Color3f(0, 0, 1)
gl.Vertex3f(1, -1, 0)
gl.End()
glfw.SwapBuffers()
}
开发者ID:andrebq,项目名称:tinygl,代码行数:17,代码来源:triangle.go
示例3: render
func (s sprite) render() {
gl.Translatef(float32(s.X), float32(s.Y), float32(s.Z))
gl.Rotatef(90.0, 1.0, 0.0, 0.0)
s.tex.Bind(gl.TEXTURE_2D)
gl.Begin(gl.QUADS)
gl.TexCoord2f(0.0, 1.0)
gl.Vertex3f(-s.width/2.0, -s.height/2.0, 0.0)
gl.TexCoord2f(1.0, 1.0)
gl.Vertex3f(s.width/2.0, -s.height/2.0, 0.0)
gl.TexCoord2f(1.0, 0.0)
gl.Vertex3f(s.width/2.0, s.height/2.0, 0.0)
gl.TexCoord2f(0.0, 0.0)
gl.Vertex3f(-s.width/2.0, s.height/2.0, 0.0)
gl.End()
s.tex.Unbind(gl.TEXTURE_2D)
}
开发者ID:esnowkropla,项目名称:dep,代码行数:17,代码来源:render.go
示例4: drawScene
func drawScene() {
gl.Clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT)
gl.LoadIdentity()
gl.Translatef(-1.5, 0, -6)
gl.Rotatef(trisAngle, 0, 1, 0)
gl.Begin(gl.TRIANGLES)
gl.Color3f(1, 0, 0)
gl.Vertex3f(0, 1, 0)
gl.Color3f(0, 1, 0)
gl.Vertex3f(-1, -1, 0)
gl.Color3f(0, 0, 1)
gl.Vertex3f(1, -1, 0)
gl.End()
gl.LoadIdentity()
gl.Translatef(1.5, 0, -6)
gl.Rotatef(quadAngle, 1, 0, 0)
gl.Color3f(0.5, 0.5, 1.0)
gl.Begin(gl.QUADS)
gl.Vertex3f(-1, 1, 0)
gl.Vertex3f(1, 1, 0)
gl.Vertex3f(1, -1, 0)
gl.Vertex3f(-1, -1, 0)
gl.End()
trisAngle += 0.2
quadAngle -= 0.15
glfw.SwapBuffers()
}
开发者ID:sycoso,项目名称:glfw,代码行数:33,代码来源:main.go
示例5: Render
func (v *Video) Render() {
for running {
select {
case dimensions := <-v.resize:
v.ResizeEvent(dimensions[0], dimensions[1])
case val := <-v.tick:
slice := make([]uint8, len(val)*3)
for i := 0; i < len(val); i = i + 1 {
slice[i*3+0] = (uint8)((val[i] >> 16) & 0xff)
slice[i*3+1] = (uint8)((val[i] >> 8) & 0xff)
slice[i*3+2] = (uint8)((val[i]) & 0xff)
}
gl.Clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT)
v.tex.Bind(gl.TEXTURE_2D)
if ppu.OverscanEnabled {
gl.TexImage2D(gl.TEXTURE_2D, 0, 3, 240, 224, 0, gl.RGB, gl.UNSIGNED_BYTE, slice)
} else {
gl.TexImage2D(gl.TEXTURE_2D, 0, 3, 256, 240, 0, gl.RGB, gl.UNSIGNED_BYTE, slice)
}
gl.TexParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST)
gl.TexParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST)
gl.Begin(gl.QUADS)
gl.TexCoord2f(0.0, 1.0)
gl.Vertex3f(-1.0, -1.0, 0.0)
gl.TexCoord2f(1.0, 1.0)
gl.Vertex3f(1.0, -1.0, 0.0)
gl.TexCoord2f(1.0, 0.0)
gl.Vertex3f(1.0, 1.0, 0.0)
gl.TexCoord2f(0.0, 0.0)
gl.Vertex3f(-1.0, 1.0, 0.0)
gl.End()
if v.screen != nil {
sdl.GL_SwapBuffers()
v.fpsmanager.FramerateDelay()
}
}
}
}
开发者ID:bombless,项目名称:Fergulator,代码行数:44,代码来源:video.go
示例6: draw
func draw() {
for y := 0; y < Size; y++ {
for x := 0; x < Size; x++ {
var color uint8
if grid.Front()[y][x] {
color = 0x00
} else {
color = 0xFF
}
pixels[(y*Size+x)*3+0] = color
pixels[(y*Size+x)*3+1] = color
pixels[(y*Size+x)*3+2] = color
}
}
gl.Clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT)
gl.TexImage2D(gl.TEXTURE_2D, 0, 3, Size, Size, 0, gl.RGB, gl.UNSIGNED_BYTE, pixels)
gl.TexParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST)
gl.TexParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST)
gl.Begin(gl.QUADS)
gl.TexCoord2f(0.0, 1.0)
gl.Vertex3f(-1.0, -1.0, 0.0)
gl.TexCoord2f(1.0, 1.0)
gl.Vertex3f(1.0, -1.0, 0.0)
gl.TexCoord2f(1.0, 0.0)
gl.Vertex3f(1.0, 1.0, 0.0)
gl.TexCoord2f(0.0, 0.0)
gl.Vertex3f(-1.0, 1.0, 0.0)
gl.End()
glfw.SwapBuffers()
}
开发者ID:samnardoni,项目名称:ca,代码行数:38,代码来源:ca.go
示例7: GLDraw
// Function GLDraw draws the model into the current GL scene. It assumes that the context is already
// set up, including any translation and rotation.
func (model *Model) GLDraw() {
var a, b, c float32
var v *Vertex
// Start drawing triangles
gl.Begin(gl.TRIANGLES)
for _, triangle := range model.triangles {
triangleNormals := triangle.TriangleNormals()
textureCoordinates := triangle.TextureCoordinates()
// Set the normal. Assume it's a flat triangle (the normals at all 3 vertices are equal)
a, b, c = triangleNormals.Vertex1Normal()
gl.Normal3f(a, b, c)
// Vertex 1
a, b = textureCoordinates.Vertex1Coord()
gl.TexCoord2f(a, b)
v = triangle.Vertex1()
gl.Vertex3f(v.X(), v.Y(), v.Z())
// Vertex 2
a, b = textureCoordinates.Vertex2Coord()
gl.TexCoord2f(a, b)
v = triangle.Vertex2()
gl.Vertex3f(v.X(), v.Y(), v.Z())
// Vertex 3
a, b = textureCoordinates.Vertex3Coord()
gl.TexCoord2f(a, b)
v = triangle.Vertex3()
gl.Vertex3f(v.X(), v.Y(), v.Z())
}
// Finish
gl.End()
}
开发者ID:iand,项目名称:go,代码行数:39,代码来源:model.go
示例8: Render
func (v *Video) Render() {
runtime.LockOSThread()
for running {
select {
case val := <-v.tick:
slice := make([]uint8, len(val)*3)
for i := 0; i < len(val); i = i + 1 {
slice[i*3+0] = (uint8)((val[i] >> 16) & 0xff)
slice[i*3+1] = (uint8)((val[i] >> 8) & 0xff)
slice[i*3+2] = (uint8)((val[i]) & 0xff)
}
gl.Clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT)
v.tex.Bind(gl.TEXTURE_2D)
gl.TexImage2D(gl.TEXTURE_2D, 0, 3, 256, 240, 0, gl.RGB, gl.UNSIGNED_BYTE, slice)
gl.TexParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST)
gl.TexParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST)
gl.Begin(gl.QUADS)
gl.TexCoord2f(0.0, 1.0)
gl.Vertex3f(-1.0, -1.0, 0.0)
gl.TexCoord2f(1.0, 1.0)
gl.Vertex3f(1.0, -1.0, 0.0)
gl.TexCoord2f(1.0, 0.0)
gl.Vertex3f(1.0, 1.0, 0.0)
gl.TexCoord2f(0.0, 0.0)
gl.Vertex3f(-1.0, 1.0, 0.0)
gl.End()
glfw.SwapBuffers()
v.fpsmanager.FramerateDelay()
}
}
}
开发者ID:wmbest2,项目名称:Fergulator,代码行数:36,代码来源:video.go
示例9: Render
// Render the mesh
// The V array must be a multiple of 3 since it uses triangles to render the mesh.
// If two or more triangles share the same edge the user can pass the same pointer twice
func (m *Mesh) Render() {
count := 0
gl.Begin(gl.TRIANGLES)
for _, v := range m.V {
if count%3 == 0 && count > 0 {
gl.End()
gl.Begin(gl.TRIANGLES)
count = 0
}
gl.Color3f(1, 0, 0)
gl.Vertex3f(v.X, v.Y, v.Z)
count++
}
if count > 0 {
gl.End()
}
}
开发者ID:andrebq,项目名称:tinygl,代码行数:20,代码来源:scene.go
示例10: drawScene
func drawScene() {
gl.Clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT)
gl.LoadIdentity()
gl.Translatef(0, 0, -20+globalState.MousePos.Z*globalState.speed)
gl.Rotatef(globalState.Rot.X, 1, 0, 0)
gl.Rotatef(globalState.Rot.Y, 0, 1, 0)
gl.Rotatef(globalState.Rot.Z, 0, 0, 1)
if globalState.speed != 1 {
gl.Scalef(globalState.speed, globalState.speed, globalState.speed)
}
gl.RenderMode(gl.RENDER)
gl.Begin(gl.QUADS)
for i, _ := range mesh.Faces {
if colors, ok := faceColor[i]; ok {
gl.Color3f(colors[0], colors[1], colors[2])
} else {
faceColor[i] = make([]float32, 3)
faceColor[i][0] = rand.Float32()
faceColor[i][1] = rand.Float32()
faceColor[i][2] = rand.Float32()
gl.Color3f(faceColor[i][0], faceColor[i][1], faceColor[i][2])
}
face := &mesh.Faces[i]
for j, _ := range face.Vertices {
var v *wfobj.Vertex
if len(face.Normals) > 0 {
v = &face.Normals[j]
gl.Normal3f(v.X, v.Y, v.Z)
}
v = &face.Vertices[j]
gl.Vertex3f(v.X, v.Y, v.Z)
}
}
gl.End()
gl.Finish()
gl.Flush()
sdl.GL_SwapBuffers()
}
开发者ID:andrebq,项目名称:wfobj,代码行数:46,代码来源:main.go
示例11: drawGLScene
// Here goes our drawing code
func drawGLScene() {
// Clear the screen and depth buffer
gl.Clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT)
// Move left 1.5 units and into the screen 6.0 units.
gl.LoadIdentity()
gl.Translatef(-1.5, 0.0, -6.0)
gl.Rotatef(float32(rtri), 0.0, 1.0, 0.0) // Rotate the triangle on the Y axis
gl.Begin(gl.TRIANGLES) // Draw triangles
gl.Color3f(1.0, 0.0, 0.0) // Set The Color To Red
gl.Vertex3f(0.0, 1.0, 0.0) // top
gl.Color3f(0.0, 1.0, 0.0) // Set The Color To Red
gl.Vertex3f(-1.0, -1.0, 0.0) // bottom left
gl.Color3f(0.0, 0.0, 1.0) // Set The Color To Red
gl.Vertex3f(1.0, -1.0, 0.0) // bottom right
gl.End() // finish drawing the triangle
// Move right 3 units
gl.LoadIdentity()
gl.Translatef(1.5, 0.0, -6.0)
gl.Color3f(0.5, 0.5, 1.0) // Set The Color To Blue One Time Only
gl.Rotatef(float32(rquad), 1.0, 0.0, 0.0) // rotate the quad on the X axis
gl.Begin(gl.QUADS) // draw quads
gl.Vertex3f(-1.0, 1.0, 0.0) // top left
gl.Vertex3f(1.0, 1.0, 0.0) // top right
gl.Vertex3f(1.0, -1.0, 0.0) // bottom right
gl.Vertex3f(-1.0, -1.0, 0.0) // bottom left
gl.End() // done drawing the quad
// Draw to the screen
sdl.GL_SwapBuffers()
rtri += 0.2 // Increase The Rotation Variable For The Triangle
rquad -= 0.15 // Decrease The Rotation Variable For The Quad
// Gather our frames per second
frames++
t := sdl.GetTicks()
if t-t0 >= 5000 {
seconds := (t - t0) / 1000.0
fps := frames / seconds
fmt.Println(frames, "frames in", seconds, "seconds =", fps, "FPS")
t0 = t
frames = 0
}
}
开发者ID:navneet1v,项目名称:opengl-go-tutorials,代码行数:49,代码来源:lesson04.go
示例12: drawGLScene
// Here goes our drawing code
func drawGLScene(sector Sector) {
xtrans := gl.GLfloat(-xpos)
ztrans := gl.GLfloat(-zpos)
ytrans := gl.GLfloat(-walkbias - 0.25)
scenroty := gl.GLfloat(360.0 - yrot)
// Clear the screen and depth buffer
gl.Clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT)
// reset the view
gl.LoadIdentity()
// Rotate up and down to look up and down
gl.Rotatef(float32(lookupdown), 1.0, 0.0, 0.0)
// Rotate depending on direction player is facing
gl.Rotatef(float32(scenroty), 0.0, 1.0, 0.0)
// translate the scene based on player position
gl.Translatef(float32(xtrans), float32(ytrans), float32(ztrans))
gl.BindTexture(gl.TEXTURE_2D, uint(textures[filter]))
for _, vertices := range sector {
gl.Begin(gl.TRIANGLES)
for _, triangle := range *vertices {
gl.Normal3f(0.0, 0.0, 1.0)
gl.TexCoord2f(float32(triangle.u), float32(triangle.v))
gl.Vertex3f(float32(triangle.x), float32(triangle.y), float32(triangle.z))
}
gl.End()
}
// Draw to the screen
sdl.GL_SwapBuffers()
// Gather our frames per second
frames++
t := sdl.GetTicks()
if t-t0 >= 5000 {
seconds := (t - t0) / 1000.0
fps := frames / seconds
fmt.Println(frames, "frames in", seconds, "seconds =", fps, "FPS")
t0 = t
frames = 0
}
}
开发者ID:navneet1v,项目名称:opengl-go-tutorials,代码行数:46,代码来源:lesson10.go
示例13: drawScene
func drawScene() {
gl.Clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT)
// Food
for coord, _ := range food {
gl.LoadIdentity()
gl.Scalef(0.05, 0.05, 1)
gl.Translatef(float32(coord.x)-5, float32(coord.y)-5, -1)
gl.Begin(gl.QUADS)
gl.Color3f(0.5, float32(coord.x)/10, float32(coord.y)/10)
gl.Vertex3f(0.25, 0.75, 0)
gl.Vertex3f(0.75, 0.75, 0)
gl.Color3f(0.3, float32(coord.x)/10-0.2, float32(coord.y)/10-0.2)
gl.Vertex3f(0.75, 0.25, 0)
gl.Vertex3f(0.25, 0.25, 0)
gl.End()
}
//Snake
for _, coord := range snake.coords {
gl.LoadIdentity()
gl.Scalef(0.05, 0.05, 1)
gl.Translatef(float32(coord.x)-5, float32(coord.y)-5, -1)
gl.Begin(gl.QUADS)
gl.Color3f(float32(coord.y)/10, float32(coord.x)/10, 0.5)
gl.Vertex3f(0, 1, 0)
gl.Vertex3f(1, 1, 0)
gl.Color3f(float32(coord.y)/10-0.2, float32(coord.x)/10-0.2, 0.3)
gl.Vertex3f(1, 0, 0)
gl.Vertex3f(0, 0, 0)
gl.End()
}
glfw.SwapBuffers()
}
开发者ID:samnardoni,项目名称:gosnake,代码行数:37,代码来源:gosnake.go
示例14: drawGLScene
// Here goes our drawing code
func drawGLScene() {
// Clear the screen and depth buffer
gl.Clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT)
// Move left 1.5 units and into the screen 6.0 units.
gl.LoadIdentity()
gl.Translatef(-1.5, 0.0, -6.0)
gl.Begin(gl.TRIANGLES) // Draw triangles
gl.Vertex3f(0.0, 1.0, 0.0) // top
gl.Vertex3f(-1.0, -1.0, 0.0) // bottom left
gl.Vertex3f(1.0, -1.0, 0.0) // bottom right
gl.End() // finish drawing the triangle
// Move right 3 units
gl.Translatef(3.0, 0.0, 0.0)
gl.Begin(gl.QUADS) // draw quads
gl.Vertex3f(-1.0, 1.0, 0.0) // top left
gl.Vertex3f(1.0, 1.0, 0.0) // top right
gl.Vertex3f(1.0, -1.0, 0.0) // bottom right
gl.Vertex3f(-1.0, -1.0, 0.0) // bottom left
gl.End() // done drawing the quad
// Draw to the screen
sdl.GL_SwapBuffers()
// Gather our frames per second
frames++
t := sdl.GetTicks()
if t-t0 >= 5000 {
seconds := (t - t0) / 1000.0
fps := frames / seconds
fmt.Println(frames, "frames in", seconds, "seconds =", fps, "FPS")
t0 = t
frames = 0
}
}
开发者ID:navneet1v,项目名称:opengl-go-tutorials,代码行数:39,代码来源:lesson02.go
示例15: drawGLScene
// Here goes our drawing code
func drawGLScene() {
// Clear the screen and depth buffer
gl.Clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT)
// Move left 1.5 units and into the screen 6.0 units.
gl.LoadIdentity()
gl.Translatef(0.0, 0.0, float32(z)) // translate by z
gl.Rotatef(float32(xrot), 1.0, 0.0, 0.0) /* Rotate On The X Axis */
gl.Rotatef(float32(yrot), 0.0, 1.0, 0.0) /* Rotate On The Y Axis */
/* Select Our Texture */
gl.BindTexture(gl.TEXTURE_2D, uint(textures[filter])) // based on filter
gl.Begin(gl.QUADS)
// Front face
gl.Normal3f(0.0, 0.0, 1.0) // Normal Pointing Towards Viewer
gl.TexCoord2f(0.0, 1.0)
gl.Vertex3f(-1.0, -1.0, 1.0) // Bottom left
gl.TexCoord2f(1.0, 1.0)
gl.Vertex3f(1.0, -1.0, 1.0) // Bottom right
gl.TexCoord2f(1.0, 0.0)
gl.Vertex3f(1.0, 1.0, 1.0) // Top right
gl.TexCoord2f(0.0, 0.0)
gl.Vertex3f(-1.0, 1.0, 1.0) // Top left
// Back Face
gl.Normal3f(0.0, 0.0, -1.0) // Normal Pointing Away From Viewer
gl.TexCoord2f(0.0, 0.0)
gl.Vertex3f(-1.0, -1.0, -1.0) // Bottom right
gl.TexCoord2f(0.0, 1.0)
gl.Vertex3f(-1.0, 1.0, -1.0) // Top right
gl.TexCoord2f(1.0, 1.0)
gl.Vertex3f(1.0, 1.0, -1.0) // Top left
gl.TexCoord2f(1.0, 0.0)
gl.Vertex3f(1.0, -1.0, -1.0) // Bottom left
// Top Face
gl.Normal3f(0.0, 1.0, 0.0) // Normal Pointing Up
gl.TexCoord2f(1.0, 1.0)
gl.Vertex3f(-1.0, 1.0, -1.0) // Top left
gl.TexCoord2f(1.0, 0.0)
gl.Vertex3f(-1.0, 1.0, 1.0) // Bottom left
gl.TexCoord2f(0.0, 0.0)
gl.Vertex3f(1.0, 1.0, 1.0) // Bottom right
gl.TexCoord2f(0.0, 1.0)
gl.Vertex3f(1.0, 1.0, -1.0) // Top right
// Bottom Face
gl.Normal3f(0.0, -1.0, 0.0) // Normal Pointing Down
gl.TexCoord2f(0.0, 1.0)
gl.Vertex3f(-1.0, -1.0, -1.0) // Top right
gl.TexCoord2f(1.0, 1.0)
gl.Vertex3f(1.0, -1.0, -1.0) // Top left
gl.TexCoord2f(1.0, 0.0)
gl.Vertex3f(1.0, -1.0, 1.0) // Bottom left
gl.TexCoord2f(0.0, 0.0)
gl.Vertex3f(-1.0, -1.0, 1.0) // Bottom right
// Right face
gl.Normal3f(1.0, 0.0, 0.0) // Normal Pointing Right
gl.TexCoord2f(0.0, 0.0)
gl.Vertex3f(1.0, -1.0, -1.0) // Bottom right
gl.TexCoord2f(0.0, 1.0)
gl.Vertex3f(1.0, 1.0, -1.0) // Top right
gl.TexCoord2f(1.0, 1.0)
gl.Vertex3f(1.0, 1.0, 1.0) // Top left
gl.TexCoord2f(1.0, 0.0)
gl.Vertex3f(1.0, -1.0, 1.0) // Bottom left
// Left Face
gl.Normal3f(-1.0, 0.0, 0.0) // Normal Pointing Left
gl.TexCoord2f(1.0, 0.0)
gl.Vertex3f(-1.0, -1.0, -1.0) // Bottom left
gl.TexCoord2f(0.0, 0.0)
gl.Vertex3f(-1.0, -1.0, 1.0) // Bottom right
gl.TexCoord2f(0.0, 1.0)
gl.Vertex3f(-1.0, 1.0, 1.0) // Top right
gl.TexCoord2f(1.0, 1.0)
gl.Vertex3f(-1.0, 1.0, -1.0) // Top left
gl.End()
sdl.GL_SwapBuffers()
xrot += xspeed
yrot += yspeed
// Gather our frames per second
frames++
t := sdl.GetTicks()
if t-t0 >= 5000 {
seconds := (t - t0) / 1000.0
fps := frames / seconds
fmt.Println(frames, "frames in", seconds, "seconds =", fps, "FPS")
t0 = t
frames = 0
}
//.........这里部分代码省略.........
开发者ID:navneet1v,项目名称:opengl-go-tutorials,代码行数:101,代码来源:lesson08.go
示例16: drawGLScene
// Here goes our drawing code
func drawGLScene() {
// Clear the screen and depth buffer
gl.Clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT)
gl.BindTexture(gl.TEXTURE_2D, uint(texture))
for loop, star := range stars {
gl.LoadIdentity()
gl.Translatef(0.0, 0.0, float32(zoom))
gl.Rotatef(float32(tilt), 1.0, 0.0, 0.0)
gl.Rotatef(float32(star.angle), 0.0, 1.0, 0.0)
gl.Translatef(float32(star.dist), 0.0, 0.0)
gl.Rotatef(float32(-star.angle), 0.0, 1.0, 0.0)
gl.Rotatef(float32(-tilt), 1.0, 0.0, 0.0)
if twinkle {
other := stars[(num-loop)-1]
gl.Color4ub(uint8(other.r), uint8(other.g), uint8(other.b), 255)
gl.Begin(gl.QUADS)
gl.TexCoord2f(0.0, 0.0)
gl.Vertex3f(-1.0, -1.0, 0.0)
gl.TexCoord2f(1.0, 0.0)
gl.Vertex3f(1.0, -1.0, 0.0)
gl.TexCoord2f(1.0, 1.0)
gl.Vertex3f(1.0, 1.0, 0.0)
gl.TexCoord2f(0.0, 1.0)
gl.Vertex3f(-1.0, 1.0, 0.0)
gl.End()
}
gl.Rotatef(float32(spin), 0.0, 0.0, 1.0)
gl.Color4ub(uint8(star.r), uint8(star.g), uint8(star.b), 255)
gl.Begin(gl.QUADS)
gl.TexCoord2f(0.0, 0.0)
gl.Vertex3f(-1.0, -1.0, 0.0)
gl.TexCoord2f(1.0, 0.0)
gl.Vertex3f(1.0, -1.0, 0.0)
gl.TexCoord2f(1.0, 1.0)
gl.Vertex3f(1.0, 1.0, 0.0)
gl.TexCoord2f(0.0, 1.0)
gl.Vertex3f(-1.0, 1.0, 0.0)
gl.End()
spin += 0.01
star.angle += gl.GLfloat(loop) / gl.GLfloat(num)
star.dist -= 0.01
if star.dist < 0.0 {
star.dist += 5.0
star.r = gl.GLubyte(rand.Float32() * 255)
star.g = gl.GLubyte(rand.Float32() * 255)
star.b = gl.GLubyte(rand.Float32() * 255)
}
}
// Draw to the screen
sdl.GL_SwapBuffers()
// Gather our frames per second
frames++
t := sdl.GetTicks()
if t-t0 >= 5000 {
seconds := (t - t0) / 1000.0
fps := frames / seconds
fmt.Println(frames, "frames in", seconds, "seconds =", fps, "FPS")
t0 = t
frames = 0
}
}
开发者ID:navneet1v,项目名称:opengl-go-tutorials,代码行数:69,代码来源:lesson09.go
示例17: drawGLScene
// Here goes our drawing code
func drawGLScene() {
// Clear the screen and depth buffer
gl.Clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT)
// Move left 1.5 units and into the screen 6.0 units.
gl.LoadIdentity()
gl.Translatef(-1.5, 0.0, -6.0)
gl.Rotatef(float32(rtri), 0.0, 1.0, 0.0) // Rotate the triangle on the Y axis
gl.Begin(gl.TRIANGLES) // Draw triangles
gl.Color3f(1.0, 0.0, 0.0) /* Red */
gl.Vertex3f(0.0, 1.0, 0.0) /* Top Of Triangle (Front) */
gl.Color3f(0.0, 1.0, 0.0) /* Green */
gl.Vertex3f(-1.0, -1.0, 1.0) /* Left Of Triangle (Front) */
gl.Color3f(0.0, 0.0, 1.0) /* Blue */
gl.Vertex3f(1.0, -1.0, 1.0) /* Right Of Triangle (Front) */
gl.Color3f(1.0, 0.0, 0.0) /* Red */
gl.Vertex3f(0.0, 1.0, 0.0) /* Top Of Triangle (Right) */
gl.Color3f(0.0, 0.0, 1.0) /* Blue */
gl.Vertex3f(1.0, -1.0, 1.0) /* Left Of Triangle (Right) */
gl.Color3f(0.0, 1.0, 0.0) /* Green */
gl.Vertex3f(1.0, -1.0, -1.0) /* Right Of Triangle (Right) */
gl.Color3f(1.0, 0.0, 0.0) /* Red */
gl.Vertex3f(0.0, 1.0, 0.0) /* Top Of Triangle (Back) */
gl.Color3f(0.0, 1.0, 0.0) /* Green */
gl.Vertex3f(1.0, -1.0, -1.0) /* Left Of Triangle (Back) */
gl.Color3f(0.0, 0.0, 1.0) /* Blue */
gl.Vertex3f(-1.0, -1.0, -1.0) /* Right Of Triangle (Back) */
gl.Color3f(1.0, 0.0, 0.0) /* Red */
gl.Vertex3f(0.0, 1.0, 0.0) /* Top Of Triangle (Left) */
gl.Color3f(0.0, 0.0, 1.0) /* Blue */
gl.Vertex3f(-1.0, -1.0, -1.0) /* Left Of Triangle (Left) */
gl.Color3f(0.0, 1.0, 0.0) /* Green */
gl.Vertex3f(-1.0, -1.0, 1.0) /* Right Of Triangle (Left) */
gl.End() // finish drawing the triangle
// Move right 3 units
gl.LoadIdentity()
gl.Translatef(1.5, 0.0, -7.0)
gl.Rotatef(float32(rquad), 1.0, 1.0, 1.0) // rotate the quad on the X axis
gl.Begin(gl.QUADS) // draw quads
gl.Color3f(0.0, 1.0, 0.0) // Set The Color To Green
gl.Vertex3f(1.0, 1.0, -1.0) // Top Right Of The Quad (Top)
gl.Vertex3f(-1.0, 1.0, -1.0) // Top Left Of The Quad (Top)
gl.Vertex3f(-1.0, 1.0, 1.0) // Bottom Left Of The Quad (Top)
gl.Vertex3f(1.0, 1.0, 1.0) // Bottom Right Of The Quad (Top)
gl.Color3f(1.0, 0.5, 0.0) // Set The Color To Orange
gl.Vertex3f(1.0, -1.0, 1.0) // Top Right Of The Quad (Bottom)
gl.Vertex3f(-1.0, -1.0, 1.0) // Top Left Of The Quad (Bottom)
gl.Vertex3f(-1.0, -1.0, -1.0) // Bottom Left Of The Quad (Bottom)
gl.Vertex3f(1.0, -1.0, -1.0) // Bottom Right Of The Quad (Bottom)
gl.Color3f(1.0, 0.0, 0.0) // Set The Color To Red
gl.Vertex3f(1.0, 1.0, 1.0) // Top Right Of The Quad (Front)
gl.Vertex3f(-1.0, 1.0, 1.0) // Top Left Of The Quad (Front)
gl.Vertex3f(-1.0, -1.0, 1.0) // Bottom Left Of The Quad (Front)
gl.Vertex3f(1.0, -1.0, 1.0) // Bottom Right Of The Quad (Front)
gl.Color3f(1.0, 1.0, 0.0) // Set The Color To Yellow
gl.Vertex3f(1.0, -1.0, -1.0) // Bottom Left Of The Quad (Back)
gl.Vertex3f(-1.0, -1.0, -1.0) // Bottom Right Of The Quad (Back)
gl.Vertex3f(-1.0, 1.0, -1.0) // Top Right Of The Quad (Back)
gl.Vertex3f(1.0, 1.0, -1.0) // Top Left Of The Quad (Back)
gl.Color3f(0.0, 0.0, 1.0) // Set The Color To Blue
gl.Vertex3f(-1.0, 1.0, 1.0) // Top Right Of The Quad (Left)
gl.Vertex3f(-1.0, 1.0, -1.0) // Top Left Of The Quad (Left)
gl.Vertex3f(-1.0, -1.0, -1.0) // Bottom Left Of The Quad (Left)
gl.Vertex3f(-1.0, -1.0, 1.0) // Bottom Right Of The Quad (Left)
gl.Color3f(1.0, 0.0, 1.0) // Set The Color To Violet
gl.Vertex3f(1.0, 1.0, -1.0) // Top Right Of The Quad (Right)
gl.Vertex3f(1.0, 1.0, 1.0) // Top Left Of The Quad (Right)
gl.Vertex3f(1.0, -1.0, 1.0) // Bottom Left Of The Quad (Right)
gl.Vertex3f(1.0, -1.0, -1.0) // Bottom Right Of The Quad (Right)
gl.End() // done drawing the quad
// Draw to the screen
sdl.GL_SwapBuffers()
rtri += 0.2 // Increase The Rotation Variable For The Triangle
rquad -= 0.15 // Decrease The Rotation Variable For The Quad
// Gather our frames per second
frames++
t := sdl.GetTicks()
if t-t0 >= 5000 {
seconds := (t - t0) / 1000.0
fps := frames / seconds
fmt.Println(frames, "frames in", seconds, "seconds =", fps, "FPS")
t0 = t
frames = 0
}
}
开发者ID:navneet1v,项目名称:opengl-go-tutorials,代码行数:97,代码来源:lesson05.go
示例18: drawGLScene
// Here goes our drawing code
func drawGLScene() {
// Clear the screen and depth buffer
gl.Clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT)
// Move left 1.5 units and into the screen 6.0 units.
gl.LoadIdentity()
gl.Translatef(0.0, 0.0, -7.0)
gl.Rotatef(float32(xrot), 1.0, 0.0, 0.0) /* Rotate On The X Axis */
gl.Rotatef(float32(yrot), 0.0, 1.0, 0.0) /* Rotate On The Y Axis */
gl.Rotatef(float32(zrot), 0.0, 0.0, 1.0) /* Rotate On The Z Axis */
/* Select Our Texture */
gl.BindTexture(gl.TEXTURE_2D, uint(texture))
gl.Begin(gl.QUADS) // Draw a quad
/* Front Face */
gl.TexCoord2f(0.0, 1.0)
gl.Vertex3f(-1.0, -1.0, 1.0) // Bottom left
gl.TexCoord2f(1.0, 1.0)
gl.Vertex3f(1.0, -1.0, 1.0) // Bottom right
gl.TexCoord2f(1.0, 0.0)
gl.Vertex3f(1.0, 1.0, 1.0) // Top right
gl.TexCoord2f(0.0, 0.0)
gl.Vertex3f(-1.0, 1.0, 1.0) // Top left
/* Back Face */
gl.TexCoord2f(0.0, 0.0)
gl.Vertex3f(-1.0, -1.0, -1.0) // Bottom right
gl.TexCoord2f(0.0, 1.0)
gl.Vertex3f(-1.0, 1.0, -1.0) // Top right
gl.TexCoord2f(1.0, 1.0)
gl.Vertex3f(1.0, 1.0, -1.0) // Top left
gl.TexCoord2f(1.0, 0.0)
gl.Vertex3f(1.0, -1.0, -1.0) // Bottom left
/* Top Face */
gl.TexCoord2f(1.0, 1.0)
gl.Vertex3f(-1.0, 1.0, -1.0) // Top left
gl.TexCoord2f(1.0, 0.0)
gl.Vertex3f(-1.0, 1.0, 1.0) // Bottom left
gl.TexCoord2f(0.0, 0.0)
gl.Vertex3f(1.0, 1.0, 1.0) // Bottom right
gl.TexCoord2f(0.0, 1.0)
gl.Vertex3f(1.0, 1.0, -1.0) // Top right
/* Bottom Face */
gl.TexCoord2f(0.0, 1.0)
gl.Vertex3f(-1.0, -1.0, -1.0) // Top right
gl.TexCoord2f(1.0, 1.0)
gl.Vertex3f(1.0, -1.0, -1.0) // Top left
gl.TexCoord2f(1.0, 0.0)
gl.Vertex3f(1.0, -1.0, 1.0) // Bottom left
gl.TexCoord2f(0.0, 0.0)
gl.Vertex3f(-1.0, -1.0, 1.0) // Bottom right
/* Right face */
gl.TexCoord2f(0.0, 0.0)
gl.Vertex3f(1.0, -1.0, -1.0) // Bottom right
gl.TexCoord2f(0.0, 1.0)
gl.Vertex3f(1.0, 1.0, -1.0) // Top right
gl.TexCoord2f(1.0, 1.0)
gl.Vertex3f(1.0, 1.0, 1.0) // Top left
gl.TexCoord2f(1.0, 0.0)
gl.Vertex3f(1.0, -1.0, 1.0) // Bottom left
/* Left Face */
gl.TexCoord2f(1.0, 0.0)
gl.Vertex3f(-1.0, -1.0, -1.0) // Bottom left
gl.TexCoord2f(0.0, 0.0)
gl.Vertex3f(-1.0, -1.0, 1.0) // Bottom right
gl.TexCoord2f(0.0, 1.0)
gl.Vertex3f(-1.0, 1.0, 1.0) // Top right
gl.TexCoord2f(1.0, 1.0)
gl.Vertex3f(-1.0, 1.0, -1.0) // Top left
gl.End() // done drawing the quad
// Draw to the screen
sdl.GL_SwapBuffers()
xrot += 0.3 /* X Axis Rotation */
yrot += 0.2 /* Y Axis Rotation */
zrot += 0.4 /* Z Axis Rotation */
// Gather our frames per second
frames++
t := sdl.GetTicks()
if t-t0 >= 5000 {
seconds := (t - t0) / 1000.0
fps := frames / seconds
fmt.Println(frames, "frames in", seconds, "seconds =", fps, "FPS")
t0 = t
frames = 0
}
}
开发者ID:navneet1v,项目名称:opengl-go-tutorials,代码行数:96,代码来源:lesson06.go
示例19: drawScene
func drawScene() {
gl.Clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT)
gl.LoadIdentity()
gl.Translatef(0, 0, -5)
gl.Rotatef(rotation[0], 1, 0, 0)
gl.Rotatef(rotation[1], 0, 1, 0)
gl.Rotatef(rotation[2], 0, 0, 1)
rotation[0] += 0.3
rotation[1] += 0.2
rotation[2] += 0.4
textures[0].Bind(gl.TEXTURE_2D)
gl.Begin(gl.QUADS)
// Front Face
gl.TexCoord2f(0, 0)
gl.Vertex3f(-1, -1, 1) // Bottom Left Of The Texture and Quad
gl.TexCoord2f(1, 0)
gl.Vertex3f(1, -1, 1) // Bottom Right Of The Texture and Quad
gl.TexCoord2f(1, 1)
gl.Vertex3f(1, 1, 1) // Top Right Of The Texture and Quad
gl.TexCoord2f(0, 1)
gl.Vertex3f(-1, 1, 1) // Top Left Of The Texture and Quad
// Back Face
gl.TexCoord2f(1, 0)
gl.Vertex3f(-1, -1, -1) // Bottom Right Of The Texture and Quad
gl.TexCoord2f(1, 1)
gl.Vertex3f(-1, 1, -1) // Top Right Of The Texture and Quad
gl.TexCoord2f(0, 1)
gl.Vertex3f(1, 1, -1) // Top Left Of The Texture and Quad
gl.TexCoord2f(0, 0)
gl.Vertex3f(1, -1, -1) // Bottom Left Of The Texture and Quad
// Top Face
gl.TexCoord2f(0, 1)
gl.Vertex3f(-1, 1, -1) // Top Left Of The Texture and Quad
gl.TexCoord2f(0, 0)
gl.Vertex3f(-1, 1, 1) // Bottom Left Of The Texture and Quad
gl.TexCoord2f(1, 0)
gl.Vertex3f(1, 1, 1) // Bottom Right Of The Texture and Quad
gl.TexCoord2f(1, 1)
gl.Vertex3f(1, 1, -1) // Top Right Of The Texture and Quad
// Bottom Face
gl.TexCoord2f(1, 1)
gl.Vertex3f(-1, -1, -1) // Top Right Of The Texture and Quad
gl.TexCoord2f(0, 1)
gl.Vertex3f(1, -1, -1) // Top Left Of The Texture and Quad
gl.TexCoord2f(0, 0)
gl.Vertex3f(1, -1, 1) // Bottom Left Of The Texture and Quad
gl.TexCoord2f(1, 0)
gl.Vertex3f(-1, -1, 1) // Bottom Right Of The Texture and Quad
// Right face
gl.TexCoord2f(1, 0)
gl.Vertex3f(1, -1, -1) // Bottom Right Of The Texture and Quad
gl.TexCoord2f(1, 1)
gl.Vertex3f(1, 1, -1) // Top Right Of The Texture and Quad
gl.TexCoord2f(0, 1)
gl.Vertex3f(1, 1, 1) // Top Left Of The Texture and Quad
gl.TexCoord2f(0, 0)
gl.Vertex3f(1, -1, 1) // Bottom Left Of The Texture and Quad
// Left Face
gl.TexCoord2f(0, 0)
gl.Vertex3f(-1, -1, -1) // Bottom Left Of The Texture and Quad
gl.TexCoord2f(1, 0)
gl.Vertex3f(-1, -1, 1) // Bottom Right Of The Texture and Quad
gl.TexCoord2f(1, 1)
gl.Vertex3f(-1, 1, 1) // Top Right Of The Texture and Quad
gl.TexCoord2f(0, 1)
gl.Vertex3f(-1, 1, -1) // Top Left Of The Texture and Quad
gl.End()
glfw.SwapBuffers()
}
开发者ID:andrebq,项目名称:glfw,代码行数:75,代码来源:main.go
注:本文中的github.com/banthar/gl.Vertex3f函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论