Awesome
groverburger's 3D engine (g3d) simplifies LÖVE's 3d capabilities to be as simple to use as possible.<br/> View the original forum post here.
The entire main.lua
file for the Earth and Moon demo is under 30 lines, as shown here:
-- written by groverbuger for g3d
-- may 2021
-- MIT license
local g3d = require "g3d"
local earth = g3d.newModel("assets/sphere.obj", "assets/earth.png", {0,0,4})
local moon = g3d.newModel("assets/sphere.obj", "assets/moon.png", {5,0,4}, nil, {0.5,0.5,0.5})
local background = g3d.newModel("assets/sphere.obj", "assets/starfield.png", {0,0,0}, nil, {500,500,500})
local timer = 0
function love.mousemoved(x,y, dx,dy)
g3d.camera.firstPersonLook(dx,dy)
end
function love.update(dt)
timer = timer + dt
moon:setTranslation(math.cos(timer)*5, 0, math.sin(timer)*5 +4)
moon:setRotation(0, math.pi - timer, 0)
g3d.camera.firstPersonMovement(dt)
if love.keyboard.isDown("escape") then love.event.push("quit") end
end
function love.draw()
earth:draw()
moon:draw()
background:draw()
end
Features
- 3D Model rendering
- .obj file loading
- Basic first person movement and camera controls
- Perspective and orthographic projections
- Easily create your own custom vertex and fragment shaders
- Basic collision functions
- Simple, commented, and organized
- Fully documented, check out the g3d wiki!
Getting Started
- Download the latest release version.
- Add the
g3d
subfolder folder to your project. - Add
g3d = require "g3d"
to the top of yourmain.lua
file.
For more information, check out the g3d wiki!
Games and demos made with g3d
Hoarder's Horrible House of Stuff by alesan99<br/>
Lead Haul by YouDoYouBuddy<br/>
First Person Test by groverburger<br/>
g3d voxel engine by groverburger<br />
Additional Help and FAQ
Check out the g3d wiki!