Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local main = require("engine")
- term.setPaletteColor(colors.yellow, 194/255,178/255,128/255)
- local width,height = term.getSize()
- local win = window.create(term.current(),1,1,width,height)
- local oldTerm = term.redirect(win)
- local sTime = os.epoch("utc")/1000
- local frames = 10000
- local objects = {}
- for i=1,40 do
- objects[i] = main.objects.newCube()
- objects[i].loc.z = -8
- objects[i].loc.x = -6.5+i/3
- objects[i].scale = vector.new(0.4,3,1)
- local colorData = {
- [2^math.random(0,14)] = true,
- [2^math.random(0,14)] = true,
- [2^math.random(0,14)] = true
- }
- local color = main.createColor(colorData)
- objects[i].color = color
- end
- local drawArgs = main.getProcessingArgs()
- drawArgs.drawWireFrame = false
- drawArgs.drawTriangles = true
- local distanceShader = {
- [0] = {"O",colors.white},
- [15] = {"o",colors.white}
- }
- local function render()
- local camPos = vector.new(0,0,0)
- local camRot = vector.new(0,0,0)
- for i=1,frames do
- for i=1,#objects do
- objects[i].rot = vector.new(os.epoch()/400+i*10,1,1)
- end
- local zBuffer = main.createZBuffer()
- local perspertive = main.createPerspective(width,height,40)
- local camera = main.createCamera(camPos,camRot)
- local projected = main.transform(objects,perspertive,camera)
- local dat = main.proccesTriangleData(zBuffer,projected,drawArgs)
- local blit = main.convertBufferToDrawable(width,height,dat,distanceShader)
- main.drawConverted(term,blit)
- os.queueEvent("yielding")
- os.pullEvent("yielding")
- end
- end
- local ok,err = pcall(render)
- term.redirect(oldTerm)
- term.setCursorPos(1,1)
- if not ok then
- print(err,0)
- end
- local eTime = os.epoch("utc")/1000
- local tDiff = eTime-sTime
- _G.FPS = frames/tDiff
- print("FPS: ".._G.FPS)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement