1. Termékek
  2.   3D
  3.   GO
  4.   FauxGL
 
  

Ingyenes Go könyvtár 3D rendereléshez és transzformációhoz

Vezető nyílt forráskódú Go 3D grafikai könyvtár a 3D hálók, egyedi árnyalás és anyagok, 3D transzformációk, több szálas renderelés, élsimítás és egyéb feladatok kezeléséhez.

Mi az a FauxGL könyvtár?

FauxGL egy innovatív nyílt forráskódú Go 3D könyvtár Michael Fogleman által, amely tiszta Go, szoftver-alapú 3D renderelést kínál külső függőségek nélkül. Ez a könnyű, mégis erőteljes eszközkészlet ideális fejlesztők számára, akik ingyenes Go 3D API-t keresnek hordozható grafikai megoldásokhoz. Támogatja az alapvető funkciókat, mint a csúcspont-transzformációk, 3D hálók importálása és manipulálása, egyedi árnyalás, anyagkezelés, perspektíva- és kamera‑vezérlés, háromszög rasterizálás, színinterpoláció, textúra‑leképezés, drótváz renderelés, mélységi puffer és rejtett felület eltávolítás. A szoftverfejlesztők könnyedén készíthetnek STL 3D rajzokat, szekciókat adhatnak hozzá 3D fájlokhoz, és precízen kezelhetik a 3D diagramok renderelését, így sokoldalú választás azoknak a projekteknek, amelyek magas fokú irányítást igényelnek a renderelési csővezetékben.

Az OpenGL vagy DirectX-hez hasonló GPU-függő megoldásoktól eltérően a FauxGL teljesen a CPU-n dolgozik, így tökéletes olyan környezetekben, ahol nincs hardveres gyorsítás vagy közvetlen renderelés-vezérlésre van szükség. Bár nem játékra, magas képkockasebességre tervezték, kiváló offline renderelésben, algoritmus tesztelésben, oktatási célokra és vizualizációk generálásában. A FauxGL képes 3D OBJ és FBX fájlokkal dolgozni, betölteni olyan formátumokat, mint az STL, PLY és 3DS, sőt 3D fájlokat PDF-be konvertálni, ha szélesebb munkafolyamatokba integrálják. Emellett beépített függvényeket kínál síkok, gömbök, kockák, hengerek és kúpak létrehozásához, lehetővé téve a 3D fájl entitások gyors renderelését és transzformációk alkalmazását 3D diagramokon. A FauxGL tiszta, kifejező bemutatója a Go képességeinek CPU-alapú 3D grafikai renderelésben.

Previous Next

Első lépések a FauxGL használatához

A FauxGL telepítésének ajánlott módja a GitHub használata. Kérjük, használja a következő parancsot a zökkenőmentes telepítéshez.

Telepítsd a FauxGL API-t a Get parancs segítségével

go get github.com/fogleman/fauxgl 

A lefordított megosztott könyvtárat letöltheti a Github tárolóból.

Tiszta CPU-alapú renderelés Go API-val

A nyílt forráskódú FauxGL könyvtár támogatja a tisztán CPU-alapú renderelést, és egyáltalán nem használja a GPU-t. Minden háromszög, minden pixel és minden transzformáció kizárólag a CPU-n kerül kiszámításra. Ez tökéletes választássá teszi fej nélküli renderelési környezetekben (például szervereken) vagy egyszerű grafikai feldolgozási feladatoknál, GPU-függőség nélkül. Az alábbi kódrészlet bemutatja, hogyan állítható be egy jelenet Go alkalmazásokban.

Hogyan állítsunk be egy jelenetet a tiszta CPU-alapú rendereléshez a Go könyvtár segítségével?

import "github.com/fogleman/fauxgl"

const (
    width  = 1024
    height = 768
)

func main() {
    context := fauxgl.NewContext(width, height)
    context.ClearColorBufferWithColor(fauxgl.Black)
    context.ClearDepthBuffer()

    // Now you can start drawing models or primitives!
}

3D modell betöltése és átalakítása

A nyílt forráskódú FauxGL könyvtár teljes támogatást nyújt 3D modellek betöltéséhez és kezeléséhez Go alkalmazásokban. Betöltés után könnyedén alkalmazhatók olyan transzformációk, mint a méretezés, forgatás, átméretezés és eltolás. Íme egy egyszerű példa, amely bemutatja, hogyan tölthetnek be szoftverfejlesztők Wavefront OBJ formátumokat, a leggyakoribb 3D modellfájl-formátumok egyikét, és hogyan alkalmazhatnak rá transzformációkat a Go könyvtár segítségével.

Hogyan töltsünk be egy 3D modellt és alkalmazzunk transzformációkat a Go könyvtár segítségével?

mesh, err := fauxgl.LoadOBJ("model.obj")
if err != nil {
    panic(err)
}

// Apply transformations
matrix := fauxgl.Identity().
    Scale(fauxgl.Vector{1, 1, 1}).
    Rotate(fauxgl.V(0, 1, 0), fauxgl.Radians(45)).
    Translate(fauxgl.Vector{0, 0, -5})

mesh.Transform(matrix)

Vektorműveletek Go könyvtárral

A MathGL könyvtár kiterjedt támogatást nyújt vektor- és mátrixmatematikához, beleértve a 2D, 3D és 4D vektorok és mátrixok műveleteit. Ezek elengedhetetlenek a pozíciók, irányok, sebességek és egyéb térbeli adatok kezeléséhez. Támogatja az Add, Sub, Dot, Cross, Normalize stb. műveleteket, valamint a többféle pontosságú típusokat (mgl32 a float32-hez, mgl64 a float64-hez). Íme egy egyszerű példa, amely bemutatja, hogyan végezhetnek a szoftverfejlesztők különböző vektor műveleteket Go alkalmazásaikban.

Hogyan végezzünk vektor műveleteket a Go könyvtár segítségével?

package main

import (
	"fmt"
	"github.com/go-gl/mathgl/mgl32"
)

func main() {
	// Create two 3D vectors
	v1 := mgl32.Vec3{1, 2, 3}
	v2 := mgl32.Vec3{4, 5, 6}

	// Vector addition
	sum := v1.Add(v2)
	fmt.Println("Vector sum:", sum) // [5 7 9]

	// Dot product
	dot := v1.Dot(v2)
	fmt.Println("Dot product:", dot) // 32

	// Cross product
	cross := v1.Cross(v2)
	fmt.Println("Cross product:", cross) // [-3 6 -3]
}

Egyedi árnyalás és anyagok Go-val

A Go alkalmazásokon belül testreszabható shaderekkel definiálhatja, hogyan árnyékolódnak az objektumok. A nyílt forráskódú FauxGL könyvtár rugalmas rendszert biztosít saját árnyékolási logika írásához — lehetővé téve a szín, a megvilágítás és akár egyedi effektusok pixel szintű vezérlését. Az alábbiak bemutatják, hogyan végezhetnek a szoftverfejlesztők egyszerű sík árnyékolást Go alkalmazásokban.

Hogyan hajtsunk végre egyszerű sík árnyalást Go alkalmazásokban?

shader := func(vertex fauxgl.Vertex) fauxgl.Color {
    normal := vertex.Normal.Normalize()
    light := fauxgl.Vector{1, 1, 1}.Normalize()
    intensity := normal.Dot(light)
    baseColor := fauxgl.HexColor(0x3498db) // Light blue color
    return baseColor.MulScalar(intensity)
}

context.Shader = shader
context.DrawMesh(mesh)

 Magyar