Przeglądaj źródła

hellog3n was moved to 'demos' repository

leonsal 8 lat temu
rodzic
commit
dc1f5e91cb
2 zmienionych plików z 0 dodań i 94 usunięć
  1. 0 94
      hellog3n/main.go
  2. BIN
      hellog3n/screenshot.png

+ 0 - 94
hellog3n/main.go

@@ -1,94 +0,0 @@
-// Copyright 2016 The G3N Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// This is a minimum G3N application showing how to create a window,
-// a scene, add some 3D objects to the scene and render it.
-// For more complete demos please see: https://github.com/g3n/g3nd
-package main
-
-import (
-	"github.com/g3n/engine/camera"
-	"github.com/g3n/engine/core"
-	"github.com/g3n/engine/geometry"
-	"github.com/g3n/engine/gls"
-	"github.com/g3n/engine/graphic"
-	"github.com/g3n/engine/light"
-	"github.com/g3n/engine/material"
-	"github.com/g3n/engine/math32"
-	"github.com/g3n/engine/renderer"
-	"github.com/g3n/engine/window"
-	"math"
-	"runtime"
-)
-
-func main() {
-
-	// Creates window and OpenGL context
-	win, err := window.New("glfw", 800, 600, "Hello G3N", false)
-	if err != nil {
-		panic(err)
-	}
-
-	// OpenGL functions must be executed in the same thread where
-	// the context was created (by window.New())
-	runtime.LockOSThread()
-
-	// Create OpenGL state
-	gs, err := gls.New()
-	if err != nil {
-		panic(err)
-	}
-
-	// Creates scene for 3D objects
-	scene := core.NewNode()
-
-	// Adds white ambient light to the scene
-	ambLight := light.NewAmbient(&math32.Color{1.0, 1.0, 1.0}, 0.5)
-	scene.Add(ambLight)
-
-	// Adds a perspective camera to the scene
-	width, height := win.GetSize()
-	aspect := float32(width) / float32(height)
-	camera := camera.NewPerspective(65, aspect, 0.01, 1000)
-	camera.SetPosition(0, 0, 5)
-
-	// Add an axis helper
-	axis := graphic.NewAxisHelper(2)
-	scene.Add(axis)
-
-	// Creates a wireframe sphere positioned at the center of the scene
-	geom := geometry.NewSphere(2, 16, 16, 0, math.Pi*2, 0, math.Pi)
-	mat := material.NewStandard(math32.NewColor(1, 1, 1))
-	mat.SetSide(material.SideDouble)
-	mat.SetWireframe(true)
-	sphere := graphic.NewMesh(geom, mat)
-	scene.Add(sphere)
-
-	// Creates a renderer and adds default shaders
-	rend := renderer.NewRenderer(gs)
-	err = rend.AddDefaultShaders()
-	if err != nil {
-		panic(err)
-	}
-
-	// Sets window background color
-	gs.ClearColor(0, 0, 0, 1.0)
-
-	// Render loop
-	for !win.ShouldClose() {
-
-		// Clear buffers
-		gs.Clear(gls.DEPTH_BUFFER_BIT | gls.STENCIL_BUFFER_BIT | gls.COLOR_BUFFER_BIT)
-
-		// Rotates the sphere a bit around the Z axis (up)
-		sphere.AddRotationY(0.005)
-
-		// Render the scene using the specified camera
-		rend.Render(scene, camera)
-
-		// Update window and checks for I/O events
-		win.SwapBuffers()
-		win.PollEvents()
-	}
-}

BIN
hellog3n/screenshot.png