70 lines
2.5 KiB
Lua
70 lines
2.5 KiB
Lua
local api = ...
|
|
local envTex
|
|
local shader
|
|
|
|
return {
|
|
name = "startupscene",
|
|
enabled = (lovr ~= nil),
|
|
|
|
init = function() end,
|
|
|
|
update = function()
|
|
local iui = api.iui
|
|
local backend = api.backend
|
|
local mainWindow = api.mainWindow
|
|
end,
|
|
|
|
load = function()
|
|
--if api.iui.idiom == "vr" then
|
|
envTex = api.graphics.newTexture("runtime/lovr/assets/img/env.png", {})
|
|
api.world.skybox = api.graphics.newTexture({
|
|
px = 'ext/startupscene/skybox/Dayright.jpg', -- 'px.png',
|
|
nx = 'ext/startupscene/skybox/Dayleft.jpg', -- 'nx.png',
|
|
py = 'ext/startupscene/skybox/Daytop.jpg', -- 'py.png',
|
|
ny = 'ext/startupscene/skybox/Daybottom.jpg', -- 'ny.png',
|
|
pz = 'ext/startupscene/skybox/Dayfront.jpg', -- 'pz.png',
|
|
nz = 'ext/startupscene/skybox/Dayback.jpg' -- 'nz.png'
|
|
})
|
|
api.world.environmentMap = lovr.graphics.newTexture('ext/startupscene/skybox/ibl.ktx')
|
|
|
|
api.world.sphericalHarmonics = lovr.graphics.newBuffer({ 'vec3', layout = 'std140' }, {
|
|
{ 0.611764907836914, 0.599504590034485, 0.479980736970901 },
|
|
{ 0.659514904022217, 0.665349841117859, 0.567680120468140 },
|
|
{ 0.451633930206299, 0.450751245021820, 0.355226665735245 },
|
|
{ -0.044383134692907, -0.053154513239861, -0.019974749535322 },
|
|
{ -0.053045745939016, -0.057957146316767, -0.011247659102082 },
|
|
{ 0.485697060823441, 0.490428507328033, 0.397530466318130 },
|
|
{ -0.023690477013588, -0.024272611364722, -0.021886156871915 },
|
|
{ -0.179465517401695, -0.181243389844894, -0.141314014792442 },
|
|
{ -0.144527092576027, -0.143508568406105, -0.122757166624069 }
|
|
})
|
|
end,
|
|
|
|
draw = function(pass)
|
|
if api.iui.idiom == "vr" then
|
|
-- skybox
|
|
pass:setCullMode('back')
|
|
pass:setBlendMode()
|
|
pass:skybox(api.world.skybox)
|
|
|
|
pass:setColor(1, 1, 1)
|
|
pass:setMaterial(envTex)
|
|
pass:draw(envTex, 0, 0, 0, 512, math.pi * 0.5, 1, 0, 0)
|
|
|
|
-- floor
|
|
--pass:setMaterial()
|
|
pass:setCullMode('front')
|
|
pass:setBlendMode('alpha')
|
|
pass:setMaterial()
|
|
pass:setColor(0.8,0.8,0.8,1)
|
|
pass:plane(0, 0, 0, 500, 500, math.pi * 0.5, 1, 0, 0, "fill", 5, 5)
|
|
pass:setColor( 0, 0, 0, 0.75 )
|
|
pass:plane(0, 0.01, 0, 500, 500, math.pi * 0.5, 1, 0, 0, "line", 100, 100)
|
|
|
|
pass:setShader( lovr.shader.pbr )
|
|
pass:send('cubemap', api.world.environmentMap)
|
|
pass:send('sphericalHarmonics', api.world.sphericalHarmonics)
|
|
|
|
end
|
|
end
|
|
}
|