From cf915fc507c1c7fc439eca49a822ddabb3fe2ce0 Mon Sep 17 00:00:00 2001 From: Leif Berg Date: Mon, 19 Dec 2011 11:10:04 -0600 Subject: [PATCH 1/3] added default lighting to nav-app-skeleton.lua --- vrjugglua/lua/nav-app-skeleton.lua | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/vrjugglua/lua/nav-app-skeleton.lua b/vrjugglua/lua/nav-app-skeleton.lua index f7456f4c..0f78ae3e 100644 --- a/vrjugglua/lua/nav-app-skeleton.lua +++ b/vrjugglua/lua/nav-app-skeleton.lua @@ -73,6 +73,30 @@ function osgnav:latePreFrame() end end +function osgnav:setupDefaultLighting() + WorldStateSet = RelativeTo.World:getOrCreateStateSet() + --Light 0 + light0 = osg.Light() + light0:setAmbient(osg.Vec4(0.8, 0.8, 0.8, 0.8)) + lightsource0 = osg.LightSource() + lightsource0:setLight(light0) + lightsource0:setLocalStateSetModes(osg.StateAttribute.Values.ON) + WorldStateSet:setAssociatedModes(light0, osg.StateAttribute.Values.ON) + RelativeTo.Room:addChild(lightsource0) + light0:setPosition(osg.Vec4(0, 10, 0, 1.0)) + + --Light 1 + light1 = osg.Light() + light1:setLightNum(1) + light1:setAmbient(osg.Vec4(.8, .8, 0.6, .50)) + lightsource1 = osg.LightSource() + lightsource1:setLight(light1) + lightsource1:setLocalStateSetModes(osg.StateAttribute.Values.ON) + WorldStateSet:setAssociatedModes(light1, osg.StateAttribute.Values.ON) + RelativeTo.Room:addChild(lightsource1) + light1:setPosition(osg.Vec4(1.5, 2, 0, 1.0)) +end + print("Setting up scenegraph") navtransform = osg.PositionAttitudeTransform() @@ -86,6 +110,8 @@ osgnav.appProxy:setAppDelegate(osgnav) print("Setting kernel application") osgnav.appProxy:setActiveApplication() +print("Setting up default Lighting. Override OpenGL Light #0 & #1") +osgnav:setupDefaultLighting() From b9bced466a03223493283934f79e41c8efb0a486 Mon Sep 17 00:00:00 2001 From: Ryan Pavlik Date: Fri, 20 Jan 2012 17:10:03 -0600 Subject: [PATCH 2/3] line endings and locals --- vrjugglua/lua/nav-app-skeleton.lua | 45 +++++++++++++++--------------- 1 file changed, 23 insertions(+), 22 deletions(-) diff --git a/vrjugglua/lua/nav-app-skeleton.lua b/vrjugglua/lua/nav-app-skeleton.lua index 0f78ae3e..7b9bab93 100644 --- a/vrjugglua/lua/nav-app-skeleton.lua +++ b/vrjugglua/lua/nav-app-skeleton.lua @@ -73,28 +73,29 @@ function osgnav:latePreFrame() end end -function osgnav:setupDefaultLighting() - WorldStateSet = RelativeTo.World:getOrCreateStateSet() - --Light 0 - light0 = osg.Light() - light0:setAmbient(osg.Vec4(0.8, 0.8, 0.8, 0.8)) - lightsource0 = osg.LightSource() - lightsource0:setLight(light0) - lightsource0:setLocalStateSetModes(osg.StateAttribute.Values.ON) - WorldStateSet:setAssociatedModes(light0, osg.StateAttribute.Values.ON) - RelativeTo.Room:addChild(lightsource0) - light0:setPosition(osg.Vec4(0, 10, 0, 1.0)) - - --Light 1 - light1 = osg.Light() - light1:setLightNum(1) - light1:setAmbient(osg.Vec4(.8, .8, 0.6, .50)) - lightsource1 = osg.LightSource() - lightsource1:setLight(light1) - lightsource1:setLocalStateSetModes(osg.StateAttribute.Values.ON) - WorldStateSet:setAssociatedModes(light1, osg.StateAttribute.Values.ON) - RelativeTo.Room:addChild(lightsource1) - light1:setPosition(osg.Vec4(1.5, 2, 0, 1.0)) +function osgnav:setupDefaultLighting() + local WorldStateSet = RelativeTo.World:getOrCreateStateSet() + --Light 0 + local light0 = osg.Light() + light0:setAmbient(osg.Vec4(0.8, 0.8, 0.8, 0.8)) + local lightsource0 = osg.LightSource() + lightsource0:setLight(light0) + lightsource0:setLocalStateSetModes(osg.StateAttribute.Values.ON) + WorldStateSet:setAssociatedModes(light0, osg.StateAttribute.Values.ON) + RelativeTo.Room:addChild(lightsource0) + light0:setPosition(osg.Vec4(0, 10, 0, 1.0)) + + --Light 1 + local light1 = osg.Light() + light1:setLightNum(1) + light1:setAmbient(osg.Vec4(.8, .8, 0.6, .50)) + local lightsource1 = osg.LightSource() + lightsource1:setLight(light1) + lightsource1:setLocalStateSetModes(osg.StateAttribute.Values.ON) + WorldStateSet:setAssociatedModes(light1, osg.StateAttribute.Values.ON) + RelativeTo.Room:addChild(lightsource1) + light1:setPosition(osg.Vec4(1.5, 2, 0, 1.0)) + end From d0341dc1a9c5b3059458020f823ff2daa67e97f6 Mon Sep 17 00:00:00 2001 From: Ryan Pavlik Date: Fri, 20 Jan 2012 17:10:21 -0600 Subject: [PATCH 3/3] make a little function to remove the new default lights if desired. --- vrjugglua/lua/nav-app-skeleton.lua | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/vrjugglua/lua/nav-app-skeleton.lua b/vrjugglua/lua/nav-app-skeleton.lua index 7b9bab93..f3bc09a3 100644 --- a/vrjugglua/lua/nav-app-skeleton.lua +++ b/vrjugglua/lua/nav-app-skeleton.lua @@ -96,6 +96,11 @@ function osgnav:setupDefaultLighting() RelativeTo.Room:addChild(lightsource1) light1:setPosition(osg.Vec4(1.5, 2, 0, 1.0)) + function osgnav:clearDefaultLighting() + RelativeTo.Room:removeChild(lightsource0) + RelativeTo.Room:removeChild(lightsource1) + WorldStateSet:setAssociatedModes(light1, osg.StateAttribute.Values.OFF) + end end @@ -111,7 +116,7 @@ osgnav.appProxy:setAppDelegate(osgnav) print("Setting kernel application") osgnav.appProxy:setActiveApplication() -print("Setting up default Lighting. Override OpenGL Light #0 & #1") +print("Setting up default lighting (lights 0 and 1). Call osgnav:clearDefaultLighting() to remove light sources from graph and disable light #1.") osgnav:setupDefaultLighting()