def start(filename): # setup scenegraph graph = nodes.SceneGraph(Name="scenegraph") nrp_root = nrp_nodes.NRPNode() nrp_root.Transform.value = make_trans_mat(-3.6, -1.05, -6.0) nrp_root.Name.value = "nrp_root" nrp_interactive = nrp_nodes.NRPInteractiveNode() nrp_interactive.Name.value = "interactive_transform" loader = nodes.TriMeshLoader() wrapper = nodes.TransformNode(Name="wrapper") baseball = loader.create_geometry_from_file( "interactive_baseball_2", "data/objects/sphere.obj", avango.gua.LoaderFlags.DEFAULTS | avango.gua.LoaderFlags.MAKE_PICKABLE) baseball.Material.value.set_uniform("Color", avango.gua.Vec4(1., 0., 0., 1.0)) baseball.Material.value.set_uniform("Roughness", 0.6) baseball.Material.value.set_uniform("Metalness", 0.1) baseball.Transform.value = avango.gua.make_trans_mat( 0.0, 0.0, -2.0) * avango.gua.make_scale_mat(0.1, 0.1, 0.1) wrapper.Children.value.append(baseball) nrp_interactive.Children.value.append(wrapper) size = Vec2ui(2560, 1440) window = nodes.GlfwWindow(Title="HBP NRP @ BUW: Distribution Client", Size=size, LeftResolution=size) register_window("client_window", window) logger = avango.gua.nodes.Logger(EnableWarning=False) nettrans = avango.gua.nodes.NetTransform( Name="net", Groupname="AVCLIENT|127.0.0.1|7432") graph.Root.value.Children.value = [nettrans, nrp_root, nrp_interactive] navigator = examples_common.navigator.Navigator() navigator.StartLocation.value = wrapper.Transform.value.get_translate() navigator.OutTransform.connect_from(wrapper.Transform) navigator.RotationSpeed.value = 0.2 navigator.MotionSpeed.value = 0.04 wrapper.Transform.connect_from(navigator.OutTransform) viewer = nodes.Viewer() viewer.SceneGraphs.value = [graph] viewer.Windows.value = [window] guaVE = GuaVE() guaVE.start(locals(), globals()) viewer.run()
def run(self): guaVE = GuaVE() guaVE.start(locals(), globals(), show_banner=False) tmp = self.camera.EnableFrustumCulling.value self.camera.EnableFrustumCulling.value = False self.viewer.frame() self.camera.EnableFrustumCulling.value = tmp self.viewer.run()
def launch(self, otherlocals): print("Launch") guaVE = GuaVE() z = globals().copy() z.update(otherlocals) guaVE.start(locals(), z) self.viewer.run()
def start(): # setup scenegraph graph = avango.gua.nodes.SceneGraph(Name="scenegraph") loader = avango.gua.nodes.TriMeshLoader() volumeloader = avango.gua.nodes.VolumeLoader() volume_geode = volumeloader.load("volume", "/opt/gua_vrgeo_2013/data/objects/head_w256_h256_d225_c1_b8.raw", 0) transform = avango.gua.nodes.TransformNode( Children=[volume_geode] ) size = avango.gua.Vec2ui(1024, 768) window = avango.gua.nodes.GlfwWindow( Size=size, LeftResolution=size ) avango.gua.register_window("window", window) cam = avango.gua.nodes.CameraNode( LeftScreenPath="/screen", SceneGraph="scenegraph", Resolution=size, OutputWindowName="window", Transform=avango.gua.make_trans_mat(0.0, 0.0, 1.5) ) cam.PipelineDescription.value.Passes.value.append(avango.gua.nodes.VolumePassDescription()) screen = avango.gua.nodes.ScreenNode( Name="screen", Width=2, Height=1.5, Children=[cam], Transform=avango.gua.make_trans_mat(0.0, 0.0, 1.5) ) graph.Root.value.Children.value = [transform, screen] #setup viewer viewer = avango.gua.nodes.Viewer() viewer.SceneGraphs.value = [graph] viewer.Windows.value = [window] updater = TimedRotate() timer = avango.nodes.TimeSensor() updater.TimeIn.connect_from(timer.Time) transform.Transform.connect_from(updater.MatrixOut) guaVE = GuaVE() guaVE.start(locals(), globals()) viewer.run()
def start(filename): # setup scenegraph graph = nodes.SceneGraph(Name="scenegraph") nrp_root = nrp_nodes.NRPNode() nrp_root.Transform.value = make_trans_mat(-3.6, -1.05, -6.0) nrp_root.Name.value = "nrp_root" nrp_interactive = nrp_nodes.NRPInteractiveNode() nrp_interactive.Name.value = "interactive_transform" loader = nodes.TriMeshLoader() wrapper = nodes.TransformNode(Name="wrapper") baseball = loader.create_geometry_from_file( "interactive_baseball_2", "data/objects/sphere.obj", avango.gua.LoaderFlags.DEFAULTS | avango.gua.LoaderFlags.MAKE_PICKABLE ) baseball.Material.value.set_uniform("Color", avango.gua.Vec4(1., 0., 0., 1.0)) baseball.Material.value.set_uniform("Roughness", 0.6) baseball.Material.value.set_uniform("Metalness", 0.1) baseball.Transform.value = avango.gua.make_trans_mat(0.0, 0.0, -2.0) * avango.gua.make_scale_mat(0.1, 0.1, 0.1) wrapper.Children.value.append(baseball) nrp_interactive.Children.value.append(wrapper) size = Vec2ui(2560, 1440) window = nodes.GlfwWindow(Title="HBP NRP @ BUW: Distribution Client", Size=size, LeftResolution=size) register_window("client_window", window) logger = avango.gua.nodes.Logger(EnableWarning=False) nettrans = avango.gua.nodes.NetTransform(Name="net", Groupname="AVCLIENT|127.0.0.1|7432") graph.Root.value.Children.value = [nettrans, nrp_root, nrp_interactive] navigator = examples_common.navigator.Navigator() navigator.StartLocation.value = wrapper.Transform.value.get_translate() navigator.OutTransform.connect_from(wrapper.Transform) navigator.RotationSpeed.value = 0.2 navigator.MotionSpeed.value = 0.04 wrapper.Transform.connect_from(navigator.OutTransform) viewer = nodes.Viewer() viewer.SceneGraphs.value = [graph] viewer.Windows.value = [window] guaVE = GuaVE() guaVE.start(locals(), globals()) viewer.run()
def start(): avango.gua.load_shading_models_from("data/materials") avango.gua.load_materials_from("data/materials") graph = scene.create() eye = avango.gua.nodes.TransformNode(Name="eye", Transform=avango.gua.make_trans_mat( 0, 0, 4)) screen_size = avango.gua.Vec2(8, 4.5) screen = avango.gua.nodes.ScreenNode(Name="screen", Width=screen_size.x, Height=screen_size.y, Children=[eye]) graph.Root.value.Children.value.append(screen) camera = avango.gua.nodes.Camera(LeftEye=eye.Path.value, LeftScreen=screen.Path.value, SceneGraph=graph.Name.value) split_screens = DynamicSplitScreens(GraphIn=graph, WindowSize=size) split_screens.init( 5, lambda: avango.gua.nodes.Pipeline( LeftResolution=size, BackgroundTexture="data/textures/checker.png", BackgroundMode=avango.gua.BackgroundMode.SKYMAP_TEXTURE, AmbientColor=avango.gua.Color(1, 1, 1))) split_screens.add_split_screen(camera, avango.gua.Vec2(0, 0)) def split(split_pos): return create_split_screen(graph, split_pos, split_screens, screen_size) def unsplit(split_screen): remove_split(graph, split_screen, split_screens) split_screen_handler = SplitScreenHandler() split_screen_handler.SplitScreens = split_screens #setup viewer viewer = avango.gua.nodes.Viewer(DesiredFPS=50) viewer.Pipelines.value = [split_screens.PipelineOut.value] viewer.SceneGraphs.value = [split_screens.GraphOut.value, graph] guaVE = GuaVE() guaVE.start(locals(), globals()) viewer.run()
def start(): # setup scenegraph graph = avango.gua.nodes.SceneGraph(Name="scenegraph") loader = avango.gua.nodes.TriMeshLoader() volumeloader = avango.gua.nodes.VolumeLoader() volume_geode = volumeloader.load( "volume", "/opt/gua_vrgeo_2013/data/objects/head_w256_h256_d225_c1_b8.raw", 0) transform = avango.gua.nodes.TransformNode(Children=[volume_geode]) size = avango.gua.Vec2ui(1024, 768) window = avango.gua.nodes.GlfwWindow(Size=size, LeftResolution=size) avango.gua.register_window("window", window) cam = avango.gua.nodes.CameraNode(LeftScreenPath="/screen", SceneGraph="scenegraph", Resolution=size, OutputWindowName="window", Transform=avango.gua.make_trans_mat( 0.0, 0.0, 1.5)) cam.PipelineDescription.value.Passes.value.append( avango.gua.nodes.VolumePassDescription()) screen = avango.gua.nodes.ScreenNode(Name="screen", Width=2, Height=1.5, Children=[cam], Transform=avango.gua.make_trans_mat( 0.0, 0.0, 1.5)) graph.Root.value.Children.value = [transform, screen] #setup viewer viewer = avango.gua.nodes.Viewer() viewer.SceneGraphs.value = [graph] viewer.Windows.value = [window] updater = TimedRotate() timer = avango.nodes.TimeSensor() updater.TimeIn.connect_from(timer.Time) transform.Transform.connect_from(updater.MatrixOut) guaVE = GuaVE() guaVE.start(locals(), globals()) viewer.run()
def start(): graph = avango.gua.nodes.SceneGraph(Name="big_scenegraph") loader = avango.gua.nodes.TriMeshLoader() root_node = avango.gua.nodes.TransformNode( Name="Root", Transform=avango.gua.make_scale_mat(0.5, 0.5, 0.5)) root_monkey = loader.create_geometry_from_file("root_ape", "data/objects/monkey.obj", get_random_material()) root_node.Children.value = [root_monkey] graph.Root.value.Children.value.append(root_node) monkey_updater = TimedRotate() timer = avango.nodes.TimeSensor() monkey_updater.TimeIn.connect_from(timer.Time) root_monkey.Transform.connect_from(monkey_updater.MatrixOut) add_lights(graph, 40) setup_scene(graph, root_monkey, 4) size = avango.gua.Vec2ui(1500, int(1500 * 9 / 16)) camera = avango.gua.nodes.CameraNode(LeftScreenPath="/screen", SceneGraph="big_scenegraph", Resolution=size, OutputWindowName="window", Transform=avango.gua.make_trans_mat( 0.0, 0.0, 2.5)) screen = avango.gua.nodes.ScreenNode(Name="screen", Width=1.6, Height=0.9, Children=[camera], Transform=avango.gua.make_trans_mat( 0.0, 0.0, 0.5)) graph.Root.value.Children.value.append(screen) window = avango.gua.nodes.Window(Size=size, LeftResolution=size) avango.gua.register_window("window", window) guaVE = GuaVE() guaVE.start(locals(), globals()) viewer = avango.gua.nodes.Viewer() viewer.SceneGraphs.value = [graph] viewer.Windows.value = [window] viewer.run()
def start(): avango.gua.load_shading_models_from("data/materials") avango.gua.load_materials_from("data/materials") # Quat to texture with portal view portal = avango.gua.nodes.TexturedQuadNode(Name = "portal", Texture = "room", Width = 1.6, Height = 0.9) portal.Transform.value = avango.gua.make_trans_mat(0,2.5,2.0) *\ avango.gua.make_rot_mat(-90.0, 0, 1, 0) *\ avango.gua.make_scale_mat(2.0,6.0,2.0) simplescene.Root.value.Children.value.append(portal) # Portal updater for angle of view #portal_updater = UpdatePortalTransform() #portal_updater.PortalTransformIn.connect_from(portal.Transform) #portal_updater.ViewTransformIn.connect_from(simplescene["/screen/head"].Transform) #portal_updater.ScreenTransformIn.connect_from(simplescene["/screen"].Transform) #simpleroom["/screen/head"].Transform.connect_from(portal_updater.ViewTransformOut) # create pipeline, portal and frame pipe = create_pipeline("SimpleScene", "SimpleRoom", "firstpipe") # create navigator navigator = examples_common.navigator.Navigator() nav_node = simplescene["/screen"] nav_node.Transform.value = avango.gua.make_trans_mat(2.0,3.0,0.0) navigator.StartLocation.value = nav_node.Transform.value.get_translate() navigator.OutTransform.connect_from(nav_node.Transform) navigator.RotationSpeed.value = 0.2 navigator.MotionSpeed.value = 0.04 nav_node.Transform.connect_from(navigator.OutTransform) viewer = avango.gua.nodes.Viewer() viewer.Pipelines.value = [pipe] viewer.SceneGraphs.value = [simpleroom,simplescene] # If user ist near portal --> change the scene portal_user = PortalUser() portal_user.my_constructor(viewer, portal, nav_node) portal_user.UserPositionIn.connect_from(nav_node.Transform) guaVE = GuaVE() guaVE.start(locals(), globals()) viewer.run()
def start(): # setup scenegraph graph = avango.gua.nodes.SceneGraph(Name="scenegraph") loader = avango.gua.nodes.TriMeshLoader() monkey = loader.create_geometry_from_file("monkey", "data/objects/monkey.obj", "data/materials/Stones.gmd", avango.gua.LoaderFlags.DEFAULTS) light = avango.gua.nodes.PointLightNode(Name="light", Color=avango.gua.Color( 1.0, 1.0, 1.0)) light.Transform.value = avango.gua.make_trans_mat( 1, 1, 2) * avango.gua.make_scale_mat(15, 15, 15) eye = avango.gua.nodes.TransformNode(Name="eye") eye.Transform.value = avango.gua.make_trans_mat(0.0, 0.0, 3.5) screen = avango.gua.nodes.ScreenNode(Name="screen", Width=4, Height=3) screen.Children.value = [eye] graph.Root.value.Children.value = [monkey, light, screen] # setup viewing size = avango.gua.Vec2ui(1024, 768) pipe = avango.gua.nodes.Pipeline( Camera=avango.gua.nodes.Camera(LeftEye="/screen/eye", RightEye="/screen/eye", LeftScreen="/screen", RightScreen="/screen", SceneGraph="scenegraph"), Window=avango.gua.nodes.Window(Size=size, LeftResolution=size), LeftResolution=size) #setup viewer viewer = avango.gua.nodes.Viewer() viewer.Pipelines.value = [pipe] viewer.SceneGraphs.value = [graph] monkey_updater = TimedRotate() timer = avango.nodes.TimeSensor() monkey_updater.TimeIn.connect_from(timer.Time) monkey.Transform.connect_from(monkey_updater.MatrixOut) guaVE = GuaVE() guaVE.start(locals(), globals()) viewer.run()
def start(filename): # setup scenegraph graph = avango.gua.nodes.SceneGraph(Name="scenegraph") plodloader = avango.gua.nodes.PLODLoader() plodloader.UploadBudget.value = 32 plodloader.RenderBudget.value = 2048 plodloader.OutOfCoreBudget.value = 4096 plod_geode = plodloader.create_geometry_from_file( "point_cloud", filename, avango.gua.LoaderFlags.DEFAULTS) light = avango.gua.nodes.PointLightNode(Name="light", Color=avango.gua.Color( 1.0, 1.0, 1.0)) light.Transform.value = avango.gua.make_trans_mat( 1, 1, 2) * avango.gua.make_scale_mat(15, 15, 15) eye = avango.gua.nodes.TransformNode(Name="eye") eye.Transform.value = avango.gua.make_trans_mat(0.0, 0.0, 3.5) screen = avango.gua.nodes.ScreenNode(Name="screen", Width=4, Height=3) screen.Children.value = [eye] graph.Root.value.Children.value = [plod_geode, light, screen] # setup viewing size = avango.gua.Vec2ui(1024, 768) pipe = avango.gua.nodes.Pipeline( Camera=avango.gua.nodes.Camera(LeftEye="/screen/eye", RightEye="/screen/eye", LeftScreen="/screen", RightScreen="/screen", SceneGraph="scenegraph"), Window=avango.gua.nodes.Window(Size=size, LeftResolution=size), LeftResolution=size) pipe.EnableBackfaceCulling.value = False #setup viewer viewer = avango.gua.nodes.Viewer() viewer.Pipelines.value = [pipe] viewer.SceneGraphs.value = [graph] timer = avango.nodes.TimeSensor() guaVE = GuaVE() guaVE.start(locals(), globals()) viewer.run()
def start(filename): # setup scenegraph graph = avango.gua.nodes.SceneGraph(Name = "scenegraph") plodloader = avango.gua.nodes.PLODLoader() plodloader.UploadBudget.value = 32 plodloader.RenderBudget.value = 2048 plodloader.OutOfCoreBudget.value = 4096 plod_geode = plodloader.create_geometry_from_file("point_cloud", filename, avango.gua.LoaderFlags.DEFAULTS) light = avango.gua.nodes.PointLightNode(Name = "light", Color = avango.gua.Color(1.0, 1.0, 1.0)) light.Transform.value = avango.gua.make_trans_mat(1, 1, 2) * avango.gua.make_scale_mat(15, 15, 15) eye = avango.gua.nodes.TransformNode(Name = "eye") eye.Transform.value = avango.gua.make_trans_mat(0.0, 0.0, 3.5) screen = avango.gua.nodes.ScreenNode(Name = "screen", Width = 4, Height = 3) screen.Children.value = [eye] graph.Root.value.Children.value = [plod_geode, light, screen] # setup viewing size = avango.gua.Vec2ui(1024, 768) pipe = avango.gua.nodes.Pipeline(Camera = avango.gua.nodes.Camera(LeftEye = "/screen/eye", RightEye = "/screen/eye", LeftScreen = "/screen", RightScreen = "/screen", SceneGraph = "scenegraph"), Window = avango.gua.nodes.Window(Size = size, LeftResolution = size), LeftResolution = size) pipe.EnableBackfaceCulling.value = False #setup viewer viewer = avango.gua.nodes.Viewer() viewer.Pipelines.value = [pipe] viewer.SceneGraphs.value = [graph] timer = avango.nodes.TimeSensor() guaVE = GuaVE() guaVE.start(locals(), globals()) viewer.run()
def start(): # setup scenegraph graph = avango.gua.nodes.SceneGraph(Name = "scenegraph") loader = avango.gua.nodes.TriMeshLoader() monkey = loader.create_geometry_from_file("monkey", "data/objects/monkey.obj", "data/materials/Stones.gmd", avango.gua.LoaderFlags.DEFAULTS) light = avango.gua.nodes.PointLightNode(Name = "light", Color = avango.gua.Color(1.0, 1.0, 1.0)) light.Transform.value = avango.gua.make_trans_mat(1, 1, 2) * avango.gua.make_scale_mat(15, 15, 15) eye = avango.gua.nodes.TransformNode(Name = "eye") eye.Transform.value = avango.gua.make_trans_mat(0.0, 0.0, 3.5) screen = avango.gua.nodes.ScreenNode(Name = "screen", Width = 4, Height = 3) screen.Children.value = [eye] graph.Root.value.Children.value = [monkey, light, screen] # setup viewing size = avango.gua.Vec2ui(1024, 768) pipe = avango.gua.nodes.Pipeline(Camera = avango.gua.nodes.Camera(LeftEye = "/screen/eye", RightEye = "/screen/eye", LeftScreen = "/screen", RightScreen = "/screen", SceneGraph = "scenegraph"), Window = avango.gua.nodes.Window(Size = size, LeftResolution = size), LeftResolution = size) #setup viewer viewer = avango.gua.nodes.Viewer() viewer.Pipelines.value = [pipe] viewer.SceneGraphs.value = [graph] monkey_updater = TimedRotate() timer = avango.nodes.TimeSensor() monkey_updater.TimeIn.connect_from(timer.Time) monkey.Transform.connect_from(monkey_updater.MatrixOut) guaVE = GuaVE() guaVE.start(locals(), globals()) viewer.run()
def start(filename): # setup scenegraph graph = avango.gua.nodes.SceneGraph(Name = "scenegraph") pbrloader = avango.gua.nodes.PBRLoader() pbr_geode = pbrloader.create_geometry_from_file("pbr", filename) light = avango.gua.nodes.LightNode( Type=avango.gua.LightType.POINT, Name = "light", Color = avango.gua.Color(1.0, 1.0, 1.0)) light.Transform.value = avango.gua.make_trans_mat(1, 1, 2) * avango.gua.make_scale_mat(15, 15, 15) eye = avango.gua.nodes.TransformNode(Name = "eye") eye.Transform.value = avango.gua.make_trans_mat(0.0, 0.0, 3.5) screen = avango.gua.nodes.ScreenNode(Name = "screen", Width = 4, Height = 3) screen.Children.value = [eye] graph.Root.value.Children.value = [pbr_geode, light, screen] # setup viewing size = avango.gua.Vec2ui(1024, 768) pipe = avango.gua.nodes.Pipeline(Camera = avango.gua.nodes.Camera(LeftEye = "/screen/eye", RightEye = "/screen/eye", LeftScreen = "/screen", RightScreen = "/screen", SceneGraph = "scenegraph"), Window = avango.gua.nodes.Window(Size = size, LeftResolution = size), LeftResolution = size) pipe.EnableBackfaceCulling.value = False #setup viewer viewer = avango.gua.nodes.Viewer() viewer.Pipelines.value = [pipe] viewer.SceneGraphs.value = [graph] timer = avango.nodes.TimeSensor() guaVE = GuaVE() guaVE.start(locals(), globals()) viewer.run()
def start(filename): # setup scenegraph graph = avango.gua.nodes.SceneGraph(Name="scenegraph") videoloader = avango.gua.nodes.Video3DLoader() video_geode = videoloader.load("kinect", filename) light = avango.gua.nodes.PointLightNode(Name="light", Color=avango.gua.Color( 1.0, 1.0, 1.0)) light.Transform.value = avango.gua.make_trans_mat( 1, 1, 2) * avango.gua.make_scale_mat(15, 15, 15) eye = avango.gua.nodes.TransformNode(Name="eye") eye.Transform.value = avango.gua.make_trans_mat(0.0, 0.0, 3.5) screen = avango.gua.nodes.ScreenNode(Name="screen", Width=4, Height=3) screen.Children.value = [eye] graph.Root.value.Children.value = [video_geode, light, screen] # setup viewing size = avango.gua.Vec2ui(1024, 768) pipe = avango.gua.nodes.Pipeline( Camera=avango.gua.nodes.Camera(LeftEye="/screen/eye", RightEye="/screen/eye", LeftScreen="/screen", RightScreen="/screen", SceneGraph="scenegraph"), Window=avango.gua.nodes.Window(Size=size, LeftResolution=size), LeftResolution=size) pipe.EnableBackfaceCulling.value = False #setup viewer viewer = avango.gua.nodes.Viewer() viewer.Pipelines.value = [pipe] viewer.SceneGraphs.value = [graph] timer = avango.nodes.TimeSensor() guaVE = GuaVE() guaVE.start(locals(), globals()) viewer.run()
def start(): graph = avango.gua.nodes.SceneGraph(Name="scene") mesh_loader = avango.gua.nodes.TriMeshLoader() #configure lod backend lod_loader = avango.gua.lod.nodes.LodLoader() lod_loader.UploadBudget.value = 64 lod_loader.RenderBudget.value = 2048 lod_loader.OutOfCoreBudget.value = 4096 fallback_mat = avango.gua.create_material( avango.gua.MaterialCapabilities.COLOR_VALUE) #add (registered) fem model as reference coordinate system at normalized position and scale fem_model_geode = mesh_loader.create_geometry_from_file( "fem_model", "/mnt/pitoti/AISTec/FEM_simulation/Scherkondetal_Time_Series_20190822/FEM_OBJS/2020_01_23_Verbundtreffen_3_Demostate/Joined_Scherkonde_Geom_2020_01_23_registered.obj", avango.gua.LoaderFlags.NORMALIZE_POSITION | avango.gua.LoaderFlags.NORMALIZE_SCALE | avango.gua.LoaderFlags.LOAD_MATERIALS) #fem_model_geode.Transform.value = avango.gua.make_rot_mat(90.0, 1.0, 0.0, 0.0) * fem_model_geode.Transform.value fem_model_geode.RenderToGBuffer.value = False graph.Root.value.Children.value.append(fem_model_geode) #the vis file loader functions return MFNodes instead of a single Node plod_nodes = lod_loader.load_lod_pointclouds_from_vis_file( "/mnt/pitoti/AISTec/FEM_simulation/Scherkondetal_Time_Series_20190822/Scherkondetal_Pointclouds/2020_01_23_Verbundtreffen_3_Demostate/vis_files/train_simulation.vis", avango.gua.lod.LoaderFlags.MAKE_PICKABLE) #set the parameters for every node (I put the nodes under the fem_model to be in a meaningful reference coordinate system) for node in plod_nodes.value: fem_model_geode.Children.value.append(node) #node.Transform.value = avango.gua.make_trans_mat(0, 0.0, 1.5) * node.Transform.value node.ShadowMode.value = 1 node.EnableTimeSeriesColoring.value = True node.EnableTimeSeriesDeformation.value = True #sets the mixin factor between fe coloring and original color (0.0 = full point cloud color, 1.0 = full FEM color) node.AttributeColorToMixInFactor.value = 0.7 #exaggeration factor for the deformation node.TimeSeriesDeformFactor.value = 1000.0 #playback speed for the time series (1.0 = real-time). setting the playback speed affects the FE simulation, so all nodes refer to the same model node.TimeSeriesPlaybackSpeed.value = 1.0 #if this is set, the bridge keeps on playing back if the update_time_cursor function is called (see timer script) node.EnableAutomaticPlayback.value = True #index of the FE attribute to visualize. At least 4 are available, usually 10 node.AttributeToVisualizeIndex.value = 3 #ask one of the nodes (we just assume that we have at least one mode in the vis file) for the number of simulation positions (= train axes) arrow_geometry_list = [] reference_node = plod_nodes.value[0] number_of_train_axes = reference_node.get_number_of_simulation_positions( ).value #load the right amount of arrows for arrow_index in range(number_of_train_axes): new_arrow_geometry_node = mesh_loader.create_geometry_from_file( "arrow_geometry_" + str(arrow_index), "/opt/3d_models/symbols/arrow.obj", avango.gua.LoaderFlags.LOAD_MATERIALS) arrow_geometry_list.append(new_arrow_geometry_node) fem_model_geode.Children.value.append(new_arrow_geometry_node) width = 1920 height = int(width * 9.0 / 16.0) size = avango.gua.Vec2ui(width, height) screen = avango.gua.nodes.ScreenNode(Name="screen", Width=4.8, Height=2.7) screen.Transform.value = avango.gua.make_trans_mat(0.0, 0.0, -2.5) camera = avango.gua.nodes.CameraNode(Name="cam", LeftScreenPath="/cam/screen", RightScreenPath="/cam/screen", SceneGraph="scene", Resolution=size, OutputWindowName="window", EyeDistance=0.06, EnableStereo=False, Children=[screen], Transform=avango.gua.make_trans_mat( 0.0, 0.0, 2.0)) if OPEN_2_WINDOWS: screen2 = avango.gua.nodes.ScreenNode(Name="screen2", Width=4.8, Height=2.7) screen2.Transform.value = avango.gua.make_trans_mat(0.0, 0.0, -6.5) camera2 = avango.gua.nodes.CameraNode( Name="cam2", LeftScreenPath="/cam2/screen2", RightScreenPath="/cam2/screen2", SceneGraph="scene", Resolution=size, OutputWindowName="window2", EyeDistance=0.06, EnableStereo=False, Children=[screen2], Transform=avango.gua.make_trans_mat(0.0, 0.0, 2.0)) res_pass = avango.gua.nodes.ResolvePassDescription() res_pass.EnableSSAO.value = False res_pass.SSAOIntensity.value = 3.0 res_pass.SSAOFalloff.value = 20.0 res_pass.SSAORadius.value = 10.0 res_pass.EnvironmentLightingColor.value = avango.gua.Color(0.1, 0.1, 0.1) res_pass.ToneMappingMode.value = avango.gua.ToneMappingMode.UNCHARTED res_pass.Exposure.value = 1.0 res_pass.BackgroundMode.value = avango.gua.BackgroundMode.CUBEMAP_TEXTURE res_pass.BackgroundTexture.value = "awesome_skymap" # res_pass.BackgroundColor.value = avango.gua.Color(0.45, 0.5, 0.6) res_pass.VignetteColor.value = avango.gua.Vec4(0, 0, 0, 1) plod_pass = avango.gua.lod.nodes.PLodPassDescription() plod_pass.SurfelRenderMode.value = avango.gua.lod.RenderFlags.HQ_TWO_PASS #plod_pass.SurfelRenderMode.value = avango.gua.lod.RenderFlags.LQ_ONE_PASS pipeline_description = avango.gua.nodes.PipelineDescription( Passes=[ avango.gua.nodes.TriMeshPassDescription(), plod_pass, avango.gua.nodes.SkyMapPassDescription( OutputTextureName="awesome_skymap"), avango.gua.nodes.LightVisibilityPassDescription(), res_pass, avango.gua.nodes.DebugViewPassDescription() ], EnableABuffer=False) camera.PipelineDescription.value = pipeline_description graph.Root.value.Children.value.append(camera) if OPEN_2_WINDOWS: camera2.PipelineDescription.value = pipeline_description graph.Root.value.Children.value.append(camera2) window = avango.gua.nodes.Window(Size=size, Title="Programmable LOD", LeftResolution=size, RightResolution=size, EnableVsync=False, StereoMode=avango.gua.StereoMode.MONO) if OPEN_2_WINDOWS: window2 = avango.gua.nodes.Window( Size=size, Title="Programmable LOD", LeftResolution=size, RightResolution=size, EnableVsync=False, StereoMode=avango.gua.StereoMode.MONO #StereoMode = avango.gua.StereoMode.ANAGLYPH_RED_CYAN ) avango.gua.register_window("window", window) if OPEN_2_WINDOWS: avango.gua.register_window("window2", window2) navigator = examples_common.navigator.Navigator() navigator.StartLocation.value = camera.Transform.value.get_translate() navigator.OutTransform.connect_from(camera.Transform) navigator.RotationSpeed.value = 0.2 navigator.MotionSpeed.value = 0.04 camera.Transform.connect_from(navigator.OutTransform) viewer = avango.gua.nodes.Viewer() # viewer.DesiredFPS.value = 200 viewer.SceneGraphs.value = [graph] if OPEN_2_WINDOWS: viewer.Windows.value = [window, window2] else: viewer.Windows.value = [window] timer = avango.nodes.TimeSensor() timed_fem_updater = TimedFEMVisualizationUpdate() timed_fem_updater.TimeIn.connect_from(timer.Time) timed_fem_updater.set_reference_node(plod_nodes.value[0]) timed_fem_updater.set_arrow_node_list(arrow_geometry_list) guaVE = GuaVE() guaVE.start(locals(), globals()) viewer.run()
def start(): # setup scenegraph graph = avango.gua.nodes.SceneGraph(Name="scenegraph") web = avango.gua.gui.nodes.GuiResourceNode(TextureName="google", URL="https://www.google.com", Size=avango.gua.Vec2( 1024, 1024)) focused_element = web web_mat = avango.gua.nodes.Material() web_mat.set_uniform("ColorMap", "google") web_mat.set_uniform("Emissivity", 0.0) transform = avango.gua.nodes.TransformNode() transform.Transform.value = avango.gua.make_scale_mat( 0.5) * avango.gua.make_rot_mat(40, 1, 0, 0) resolution = avango.gua.Vec2ui(1920, 1080) loader = avango.gua.nodes.TriMeshLoader() google_geom = loader.create_geometry_from_file( "google_geom", "data/objects/curved_plane.obj", web_mat, avango.gua.LoaderFlags.NORMALIZE_POSITION | avango.gua.LoaderFlags.NORMALIZE_SCALE | avango.gua.LoaderFlags.MAKE_PICKABLE) google_geom.Children.value.append(web) transform.Children.value.append(google_geom) fps_size = avango.gua.Vec2(170, 55) fps = avango.gua.gui.nodes.GuiResourceNode( TextureName="fps", URL="asset://gua/data/html/fps.html", Size=fps_size) fps_quad = avango.gua.nodes.TexturedScreenSpaceQuadNode( Name="fps_quad", Texture="fps", Width=int(fps_size.x), Height=int(fps_size.y), Anchor=avango.gua.Vec2(1.0, 1.0), Children=[fps]) address_bar_size = avango.gua.Vec2(340, 55) address_bar = avango.gua.gui.nodes.GuiResourceNode( TextureName="address_bar", URL="asset://gua/data/html/address_bar.html", Size=address_bar_size) def address_bar_loaded(): address_bar.add_javascript_callback("update_address") address_bar.add_javascript_callback("address_back") address_bar.add_javascript_callback("address_forward") def address_bar_handle_callback(callback, params): if callback == "update_address": web.URL.value = params[0] elif callback == "address_back": web.go_back() elif callback == "address_forward": web.go_forward() address_bar.on_loaded(address_bar_loaded) address_bar.on_javascript_callback(address_bar_handle_callback) address_bar_quad = avango.gua.nodes.TexturedScreenSpaceQuadNode( Name="address_bar_quad", Texture="address_bar", Width=int(address_bar_size.x), Height=int(address_bar_size.y), Anchor=avango.gua.Vec2(-1.0, 1.0), Children=[address_bar]) google_geom.Children.value.append(address_bar_quad) google_geom.Children.value.append(fps_quad) light = avango.gua.nodes.LightNode( Type=avango.gua.LightType.POINT, Name="light", Color=avango.gua.Color(1.0, 1.0, 1.0), Brightness=80, Transform=avango.gua.make_trans_mat(-2, 3, 5) * avango.gua.make_scale_mat(50)) server_cam = avango.gua.nodes.CameraNode( ViewID=1, LeftScreenPath="/net/screen", SceneGraph="scenegraph", Resolution=resolution, OutputWindowName="server_window", Transform=avango.gua.make_trans_mat(0.0, 0.0, 1.5)) client_cam = avango.gua.nodes.CameraNode( ViewID=2, LeftScreenPath="/net/screen", SceneGraph="scenegraph", Resolution=resolution, OutputWindowName="client_window", Transform=avango.gua.make_trans_mat(0.0, 0.0, 1.5)) screen = avango.gua.nodes.ScreenNode(Name="screen", Width=1.92 * 0.25, Height=1.08 * 0.25, Transform=avango.gua.make_trans_mat( 0.0, 0.0, 2.0), Children=[server_cam, client_cam]) graph.Root.value.Children.value = [nettrans] make_node_distributable(transform) make_node_distributable(light) make_node_distributable(screen) nettrans.Children.value = [transform, light, screen] window = avango.gua.nodes.GlfwWindow(Size=resolution, LeftResolution=resolution, Title="server_window") avango.gua.register_window("server_window", window) def handle_char(c): nonlocal focused_element focused_element.inject_char_event(c) def handle_key(key, scancode, action, mods): nonlocal focused_element focused_element.inject_keyboard_event(key, scancode, action, mods) def handle_button(button, action, mods): nonlocal focused_element focused_element.inject_mouse_button(button, action, mods) def handle_cursor(pos): nonlocal focused_element hit_pos = avango.gua.Vec2() if (address_bar_quad.pixel_to_texcoords(pos, resolution, hit_pos)): address_bar.inject_mouse_position_relative(hit_pos) focused_element = address_bar else: res = avango.gua.Vec2(resolution.x, resolution.y) screen_space_pos = pos / res - 0.5 origin = screen.ScaledWorldTransform.value * avango.gua.Vec4( screen_space_pos.x, screen_space_pos.y, 0, 1) direction = origin - server_cam.WorldTransform.value * avango.gua.Vec4( 0, 0, 0, 1) ray = avango.gua.nodes.Ray( Origin=avango.gua.Vec3(origin.x, origin.y, origin.z), Direction=avango.gua.Vec3(direction.x, direction.y, direction.z) * 100.0, TMax=1.0) result = graph.ray_test( ray, avango.gua.PickingOptions.PICK_ONLY_FIRST_OBJECT | avango.gua.PickingOptions.PICK_ONLY_FIRST_FACE | avango.gua.PickingOptions.GET_TEXTURE_COORDS) for i in range(0, len(result.value)): if result.value[i].Object.value == google_geom: web.inject_mouse_position_relative( result.value[i].TextureCoords.value) focused_element = web def handle_scroll(scroll): web.inject_mouse_wheel(scroll) window.on_char(handle_char) window.on_key_press(handle_key) window.on_button_press(handle_button) window.on_move_cursor(handle_cursor) window.on_scroll(handle_scroll) #setup viewer viewer = avango.gua.nodes.Viewer() viewer.SceneGraphs.value = [graph] viewer.Windows.value = [window] timer = avango.nodes.TimeSensor() fps_updater = FPSUpdater(FPSResource=fps, Window=window, Viewer=viewer) fps_updater.TimeIn.connect_from(timer.Time) guaVE = GuaVE() guaVE.start(locals(), globals()) viewer.run()
def start(): # setup scenegraph graph = avango.gua.nodes.SceneGraph(Name="scenegraph") loader = avango.gua.nodes.TriMeshLoader() left_monkey = loader.create_geometry_from_file( "monkey", "data/objects/monkey.obj", avango.gua.LoaderFlags.NORMALIZE_SCALE) right_monkey = loader.create_geometry_from_file( "monkey", "data/objects/monkey.obj", avango.gua.LoaderFlags.NORMALIZE_SCALE) left_monkey.Material.value.set_uniform( "Color", avango.gua.Vec4(1.0, 0.766, 0.336, 1.0)) left_monkey.Material.value.set_uniform("Roughness", 0.3) left_monkey.Material.value.set_uniform("Metalness", 1.0) right_monkey.Material.value.set_uniform( "Color", avango.gua.Vec4(1.0, 0.266, 0.136, 1.0)) right_monkey.Material.value.set_uniform("Roughness", 0.6) right_monkey.Material.value.set_uniform("Metalness", 0.0) left_rot_transform = avango.gua.nodes.TransformNode( Children=[left_monkey] ) left_pos_transform = avango.gua.nodes.TransformNode( Transform=avango.gua.make_trans_mat(-0.5, 0.0, 0.0), Children=[left_rot_transform] ) right_rot_transform = avango.gua.nodes.TransformNode( Children=[right_monkey] ) right_pos_transform = avango.gua.nodes.TransformNode( Transform=avango.gua.make_trans_mat(0.5, 0.0, 0.0), Children=[right_rot_transform] ) light = avango.gua.nodes.LightNode( Type=avango.gua.LightType.POINT, Name="light", Color=avango.gua.Color(1.0, 1.0, 1.0), Brightness=100.0, Transform=(avango.gua.make_trans_mat(1, 1, 5) * avango.gua.make_scale_mat(30, 30, 30)) ) size = avango.gua.Vec2ui(1024, 768) window = avango.gua.nodes.GlfwWindow( Size=size, LeftResolution=size ) avango.gua.register_window("window", window) cam = avango.gua.nodes.CameraNode( LeftScreenPath="/screen", SceneGraph="scenegraph", Resolution=size, OutputWindowName="window", Transform=avango.gua.make_trans_mat(0.0, 0.0, 3.5) ) res_pass = avango.gua.nodes.ResolvePassDescription() res_pass.EnableSSAO.value = True res_pass.SSAOIntensity.value = 4.0 res_pass.SSAOFalloff.value = 10.0 res_pass.SSAORadius.value = 7.0 #res_pass.EnableScreenSpaceShadow.value = True res_pass.EnvironmentLightingColor.value = avango.gua.Color(0.1, 0.1, 0.1) res_pass.ToneMappingMode.value = avango.gua.ToneMappingMode.UNCHARTED res_pass.Exposure.value = 1.0 res_pass.BackgroundColor.value = avango.gua.Color(0.45, 0.5, 0.6) anti_aliasing = avango.gua.nodes.SSAAPassDescription() pipeline_description = avango.gua.nodes.PipelineDescription( Passes=[ avango.gua.nodes.TriMeshPassDescription(), avango.gua.nodes.LightVisibilityPassDescription(), res_pass, anti_aliasing, ]) cam.PipelineDescription.value = pipeline_description screen = avango.gua.nodes.ScreenNode( Name="screen", Width=2, Height=1.5, Children=[cam] ) graph.Root.value.Children.value = [ left_pos_transform, right_pos_transform, light, screen ] #setup viewer viewer = avango.gua.nodes.Viewer() viewer.SceneGraphs.value = [graph] viewer.Windows.value = [window] # device sensor listening to the daemon values device = avango.daemon.nodes.DeviceSensor( DeviceService=avango.daemon.DeviceService() ) # station name determines which device is used device.Station.value = "gua-device-xbox-0" # 0 for first xbox controller # field container to set rotation of left monkey left_rotation_updater = DeviceRotate() left_rotation_updater.RotY.connect_from(device.Value0) left_rotation_updater.RotX.connect_from(device.Value1) left_rot_transform.Transform.connect_from(left_rotation_updater.MatrixOut) # field container to set rotation of right monkey right_rotation = DeviceRotate() right_rotation.RotY.connect_from(device.Value2) right_rotation.RotX.connect_from(device.Value3) right_rot_transform.Transform.connect_from(right_rotation.MatrixOut) # all buttons change the background color bgcolor_updater = RandomColor() bgcolor_updater.Trigger.connect_from(device.Button0) bgcolor_updater.Trigger.connect_from(device.Button1) bgcolor_updater.Trigger.connect_from(device.Button2) bgcolor_updater.Trigger.connect_from(device.Button3) bgcolor_updater.Trigger.connect_from(device.Button4) bgcolor_updater.Trigger.connect_from(device.Button5) bgcolor_updater.Trigger.connect_from(device.Button6) bgcolor_updater.Trigger.connect_from(device.Button7) bgcolor_updater.Trigger.connect_from(device.Button8) bgcolor_updater.Trigger.connect_from(device.Button9) res_pass.BackgroundColor.connect_from(bgcolor_updater.ColorOut) guaVE = GuaVE() guaVE.start(locals(), globals()) viewer.run()
def start(): # setup scenegraph graph = avango.gua.nodes.SceneGraph(Name="scenegraph") loader = avango.gua.nodes.TriMeshLoader() monkey = loader.create_geometry_from_file( "monkey", "/opt/3d_models/architecture/Venicer/venicer.obj") light = avango.gua.nodes.LightNode(Type=avango.gua.LightType.POINT, Name="light", Color=avango.gua.Color(1.0, 1.0, 1.0), Brightness=300) light.Transform.value = avango.gua.make_trans_mat( 1, 2, 2) * avango.gua.make_scale_mat(15, 15, 15) # setup viewing width = 2560 #1024 height = 1080 #768 eye_size = avango.gua.Vec2ui(width, height) window_size = avango.gua.Vec2ui(width, height) left_pos = avango.gua.Vec2ui(0, 0) right_pos = avango.gua.Vec2ui(0, 0) if STEREO_MODE == avango.gua.StereoMode.SIDE_BY_SIDE: right_pos.x = width + 1 window_size.x *= 2 window_left = avango.gua.nodes.Window( Size=window_size, Display=":0.0", #SwapGroup = 1, #SwapBarrier = 1, LeftPosition=left_pos, LeftResolution=eye_size, RightPosition=right_pos, RightResolution=eye_size, StereoMode=STEREO_MODE) window_left.EnableVsync.value = False avango.gua.register_window("window_left", window_left) cam = avango.gua.nodes.CameraNode(Name="cam", LeftScreenPath="/screen", RightScreenPath="/screen", SceneGraph="scenegraph", Resolution=eye_size, EyeDistance=0.06, EnableStereo=True, LeftOutputWindow="window_left", Transform=avango.gua.make_trans_mat( 0.0, 0.0, 0.5) # NearClip = ) res_pass = avango.gua.nodes.ResolvePassDescription() res_pass.EnableSSAO.value = True res_pass.SSAOIntensity.value = 4.0 res_pass.SSAOFalloff.value = 10.0 res_pass.SSAORadius.value = 7.0 #res_pass.EnableScreenSpaceShadow.value = True res_pass.EnvironmentLightingColor.value = avango.gua.Color(0.1, 0.1, 0.1) res_pass.ToneMappingMode.value = avango.gua.ToneMappingMode.UNCHARTED res_pass.Exposure.value = 1.0 res_pass.BackgroundColor.value = avango.gua.Color(0.45, 0.5, 0.6) anti_aliasing = avango.gua.nodes.SSAAPassDescription() pipeline_description = avango.gua.nodes.PipelineDescription(Passes=[ avango.gua.nodes.TriMeshPassDescription(), avango.gua.nodes.LightVisibilityPassDescription(), res_pass, anti_aliasing, ]) cam.PipelineDescription.value = pipeline_description #cam.Transform.value = avango.gua.make_trans_mat(0.0, 0.0, 0.0) screen = avango.gua.nodes.ScreenNode(Name="screen", Width=0.255, Height=0.285) screen.Transform.value = avango.gua.make_trans_mat(0.0, 1.0, 2.5) screen.Children.value = [cam] navigator = examples_common.navigator.Navigator() navigator.StartLocation.value = screen.Transform.value.get_translate() navigator.OutTransform.connect_from(screen.Transform) navigator.RotationSpeed.value = 0.02 / 3.0 navigator.MotionSpeed.value = 0.01 screen.Transform.connect_from(navigator.OutTransform) graph.Root.value.Children.value = [monkey, light, screen] #setup viewer viewer = avango.gua.nodes.Viewer() viewer.SceneGraphs.value = [graph] viewer.Windows.value = [window_left] viewer.DesiredFPS.value = 500.0 monkey_updater = TimedRotate() timer = avango.nodes.TimeSensor() monkey_updater.TimeIn.connect_from(timer.Time) monkey_updater.set_left_window(window_left) guaVE = GuaVE() guaVE.start(locals(), globals()) viewer.run()
def start(filename): # setup scenegraph graph = avango.gua.nodes.SceneGraph(Name="scenegraph") loader = avango.gua.nodes.TriMeshLoader() # init Projector projector = XML_Projector() projector.load_XML("data/orthoimage.d.xml", graph.Root.value) projector.Texture.value = "data/textures/segMask_small.jpg" # init point cloud plodloader = avango.gua.nodes.PLODLoader() plodloader.UploadBudget.value = 16 plodloader.RenderBudget.value = 1024 plodloader.OutOfCoreBudget.value = 1024 * 6 # filename = "/home/yuqo8702/Desktop/Area-7_Rosa-Camuna_knn.kdn" plod_node = plodloader.create_geometry_from_file( filename, avango.gua.PLODLoaderFlags.DEFAULTS, ) plod_node.RadiusScale.value = 1.0 plod_node.ErrorThreshold.value = 2.5 plod_node.Material.value = projector.Material.value # setup viewing size = avango.gua.Vec2ui(2560, 1440) window = avango.gua.nodes.GlfwWindow( Size=size, LeftResolution=size, ) avango.gua.register_window("window", window) screen = avango.gua.nodes.ScreenNode( Name="screen", Width=0.64, Height=0.36, Transform=avango.gua.make_trans_mat(0.0, 0.0, -2.0), ) cam = avango.gua.nodes.CameraNode( Name="cam", LeftScreenPath="/cam/screen", SceneGraph="scenegraph", Resolution=size, OutputWindowName="window", Children=[screen], Transform=avango.gua.make_trans_mat( 499.211641143046, -1095.8880106695, 133.737704808047, ), ) pipeline_description = avango.gua.nodes.PipelineDescription( Passes=[ avango.gua.nodes.TriMeshPassDescription(), avango.gua.nodes.PLODPassDescription(), avango.gua.nodes.LightVisibilityPassDescription(), avango.gua.nodes.ResolvePassDescription(), ]) cam.PipelineDescription.value = pipeline_description graph.Root.value.Children.value = [cam, projector.group_node, plod_node] #navigation navigator = examples_common.navigator.Navigator() navigator.StartLocation.value = cam.Transform.value.get_translate() navigator.OutTransform.connect_from(cam.Transform) navigator.RotationSpeed.value = 0.1 navigator.MotionSpeed.value = 0.01 cam.Transform.connect_from(navigator.OutTransform) #toggling keyboard = examples_common.device.KeyboardDevice() toggler = Toggler() toggler.KeyIn.connect_from(keyboard.KeyT) projector.Enable.connect_from(toggler.EnableOut) #setup viewer viewer = avango.gua.nodes.Viewer() viewer.SceneGraphs.value = [graph] viewer.Windows.value = [window] guaVE = GuaVE() guaVE.start(locals(), globals()) viewer.run()
def start(): # setup scenegraph graph = avango.gua.nodes.SceneGraph(Name="scenegraph") #environment: tri_mesh_loader = avango.gua.nodes.TriMeshLoader() path_plane = "/opt/project_animation/demo/data/objects/cube2.obj" flags_plane = avango.gua.LoaderFlags.NORMALIZE_POSITION \ | avango.gua.LoaderFlags.NORMALIZE_SCALE \ | avango.gua.LoaderFlags.OPTIMIZE_GEOMETRY \ | avango.gua.LoaderFlags.MAKE_PICKABLE \ | avango.gua.LoaderFlags.LOAD_MATERIALS plane = tri_mesh_loader.create_geometry_from_file("cube", path_plane, flags_plane) plane.Transform.value *= \ avango.gua.make_scale_mat(10.0, 0.01, 10.0) * \ avango.gua.make_trans_mat(0, -3, 0) path_normal = "/opt/project_animation/demo/data/objects/glass_2_3_nm.TGA" plane.Material.value.set_uniform("NormalMap", path_normal) sunlight = \ avango.gua.nodes.LightNode( Type=avango.gua.LightType.SUN, Name="light", Color=avango.gua.Color(245.0/255.0, 246.0/255.0, 178.0/255.0), Brightness=5.0, Transform=(avango.gua.make_rot_mat(119.5, 0.0, 1.0, 0.0) * avango.gua.make_rot_mat(-10, 1.0, 0.0, 0.0)) ) #view setup: size = avango.gua.Vec2ui(2560, 1440) window = avango.gua.nodes.GlfwWindow(Size=size, LeftResolution=size) window.CursorMode.value = 2 window.EnableFullscreen.value = False cam = avango.gua.nodes.CameraNode(LeftScreenPath="/screen", SceneGraph="scenegraph", Resolution=size, OutputWindowName="window") #render pipeline pipeline_description = avango.gua.nodes.PipelineDescription(Passes=[ avango.gua.nodes.TriMeshPassDescription(), avango.gua.nodes.LightVisibilityPassDescription(), avango.gua.skelanim.nodes.SkeletalAnimationPassDescription(), avango.gua.nodes.ResolvePassDescription(), avango.gua.nodes.SSAAPassDescription(), ]) pipeline_description.Passes.value[3].EnableSSAO.value = True pipeline_description.Passes.value[3].SSAORadius.value = 2.0 pipeline_description.Passes.value[3].SSAOIntensity.value = 2.0 pipeline_description.Passes.value[3].BackgroundMode.value = 1 pipeline_description.Passes.value[3].BackgroundTexture.value = \ "/opt/guacamole/resources/skymaps/skymap.jpg" pipeline_description.Passes.value[3].ToneMappingMode.value = \ avango.gua.ToneMappingMode.LINEAR #pipeline_description.EnableABuffer.value = True cam.PipelineDescription.value = pipeline_description cam.Transform.value = avango.gua.make_trans_mat(0.0, 0.0, 0.4) cam.FarClip.value = 300 cam.NearClip.value = 0.01 screen = avango.gua.nodes.ScreenNode(Name="screen", Width=0.8, Height=0.45) screen.Children.value = [cam] screen.Transform.value = avango.gua.make_trans_mat(0, 0.1, -2) graph.Root.value.Children.value = [screen, plane, sunlight] avango.gua.register_window("window", window) #setup viewer viewer = avango.gua.nodes.Viewer() viewer.SceneGraphs.value = [graph] viewer.Windows.value = [window] window.CursorMode.value = avango.gua.CursorMode.DISABLED #XBOX Controller device_sensor = avango.daemon.nodes.DeviceSensor( DeviceService=avango.daemon.DeviceService()) device_sensor.Station.value = "device-xbox-1" #mixamo character skel_mesh_loader = avango.gua.skelanim.nodes.SkeletalAnimationLoader() #scenegraph setup: #root -> kachujin_ground -> kachujin_nav -> kachujin # ground following character control geometry kachujin_ground = avango.gua.nodes.TransformNode(Name="kachujin_ground") graph.Root.value.Children.value.append(kachujin_ground) kachujin_nav = avango.gua.nodes.TransformNode(Name="kachujin_nav") #set initial position of character here: #kachujin_nav.Transform.value = avango.gua.make_trans_mat(0.0, 0.0, 0.0) kachujin = skel_mesh_loader.create_geometry_from_file( "kachujin", "/opt/project_animation/Assets/Mixamo/Kachujin/Kachujin_G_Rosales.FBX", avango.gua.LoaderFlags.LOAD_MATERIALS | avango.gua.LoaderFlags.NORMALIZE_SCALE) kachujin.Transform.value = \ kachujin.Transform.value * \ avango.gua.make_rot_mat(-90.0, 1.0, 0.0, 0.0) * \ avango.gua.make_scale_mat(0.02, 0.02, 0.02) #load animations from character settings load_mixamo_animations_kachujin(kachujin) kachujin_ground.Children.value = [kachujin_nav] kachujin_nav.Children.value = [kachujin] #character control kachujin_character_control = CharacterControl() kachujin_character_control.my_constructor(kachujin, kachujin_nav, AnimationConfig("idle"), window) #override keyboard events with xbox controller events: #apply_character_control_settings_mixamo(kachujin_character_control, # device_sensor) apply_character_control_settings_mixamo(kachujin_character_control) #wall detection kachujin_character_control.activate_wall_detection(0.0075, 0.009, "idle", graph) #camera control kachujin_camera_control = CameraControl() kachujin_camera_control.my_constructor(kachujin, window, -17.0) screen.Transform.connect_from(kachujin_camera_control.OutTransform) #camera_control_xbox_connect(kachujin_camera_control, device_sensor) #ground following kachujin_ground_following = GroundFollowing(SceneGraph=graph, OffsetToGround=0.01, MaxDistanceToGround=100.0) kachujin_ground_following.my_constructor(gravity=-0.00005) kachujin_ground_following.InTransform.connect_from(kachujin.WorldTransform) kachujin_ground.Transform.connect_from( kachujin_ground_following.OutTransform) guaVE = GuaVE() guaVE.start(locals(), globals()) viewer.run()
def start(filename): # setup scenegraph graph = avango.gua.nodes.SceneGraph(Name="scenegraph") plodloader = avango.gua.nodes.PLODLoader() plodloader.UploadBudget.value = 32 plodloader.RenderBudget.value = 2048 plodloader.OutOfCoreBudget.value = 4096 plod_geode = plodloader.create_geometry_from_file( filename, avango.gua.PLODLoaderFlags.NORMALIZE_SCALE | avango.gua.PLODLoaderFlags.NORMALIZE_POSITION) #filename, avango.gua.PLODLoaderFlags.DEFAULTS) #light = avango.gua.nodes.LightNode( # Type=avango.gua.LightType.POINT, # Name = "light", Color = avango.gua.Color(1.0, 1.0, 1.0)) light = avango.gua.nodes.LightNode( Type=avango.gua.LightType.POINT, Name="light", Color=avango.gua.Color(1.0, 1.0, 1.0), Brightness=50.0, Transform=avango.gua.make_trans_mat(1, 1, 5) * avango.gua.make_scale_mat(15, 15, 15)) light.Transform.value = avango.gua.make_trans_mat( 1, 1, 2) * avango.gua.make_scale_mat(15, 15, 15) size = avango.gua.Vec2ui(1024, 768) eye = avango.gua.nodes.TransformNode(Name="eye") eye.Transform.value = avango.gua.make_trans_mat(0.0, 0.0, 3.5) window = avango.gua.nodes.GlfwWindow(Size=size, LeftResolution=size) avango.gua.register_window("window", window) cam = avango.gua.nodes.CameraNode(LeftScreenPath="/screen", SceneGraph="scenegraph", Resolution=size, OutputWindowName="window", Transform=avango.gua.make_trans_mat( 0.0, 0.0, 3.5)) resolve_pass = avango.gua.nodes.ResolvePassDescription() resolve_pass.BackgroundMode.value = avango.gua.BackgroundMode.COLOR resolve_pass.BackgroundColor.value = avango.gua.Color(1, 0, 0) resolve_pass.ToneMappingMode.value = avango.gua.ToneMappingMode.LINEAR pipeline_description = avango.gua.nodes.PipelineDescription() pipeline_description.Passes.value = [ avango.gua.nodes.TriMeshPassDescription(), avango.gua.nodes.TexturedQuadPassDescription(), avango.gua.nodes.PLODPassDescription(), avango.gua.nodes.LightVisibilityPassDescription(), avango.gua.nodes.BBoxPassDescription(), resolve_pass, avango.gua.nodes.TexturedScreenSpaceQuadPassDescription() ] cam.PipelineDescription.value = pipeline_description screen = avango.gua.nodes.ScreenNode(Name="screen", Width=4, Height=3) screen = avango.gua.nodes.ScreenNode(Name="screen", Width=4, Height=3, Children=[cam]) screen.Children.value = [eye] graph.Root.value.Children.value = [plod_geode, light, screen] # setup viewing size = avango.gua.Vec2ui(1024, 768) #setup viewer viewer = avango.gua.nodes.Viewer() viewer.SceneGraphs.value = [graph] viewer.Windows.value = [window] timer = avango.nodes.TimeSensor() guaVE = GuaVE() guaVE.start(locals(), globals()) viewer.run()
def launch(): guaVE = GuaVE() guaVE.start(locals(), globals()) viewer.run()
def start(): # setup scenegraph graph = avango.gua.nodes.SceneGraph(Name="scenegraph") loader = avango.gua.nodes.TriMeshLoader() monkey1 = loader.create_geometry_from_file( "monkey", "data/objects/monkey.obj", avango.gua.LoaderFlags.NORMALIZE_SCALE) monkey2 = loader.create_geometry_from_file( "monkey", "data/objects/monkey.obj", avango.gua.LoaderFlags.NORMALIZE_SCALE) monkey1.Material.value.set_uniform("Color", avango.gua.Vec4(1.0, 0.766, 0.336, 1.0)) monkey1.Material.value.set_uniform("Roughness", 0.3) monkey1.Material.value.set_uniform("Metalness", 1.0) monkey2.Material.value.set_uniform("Color", avango.gua.Vec4(1.0, 0.266, 0.136, 1.0)) monkey2.Material.value.set_uniform("Roughness", 0.6) monkey2.Material.value.set_uniform("Metalness", 0.0) transform1 = avango.gua.nodes.TransformNode(Children=[monkey1]) transform2 = avango.gua.nodes.TransformNode( Transform=avango.gua.make_trans_mat(-0.5, 0.0, 0.0), Children=[monkey2]) light = avango.gua.nodes.LightNode( Type=avango.gua.LightType.POINT, Name="light", Color=avango.gua.Color(1.0, 1.0, 1.0), Brightness=100.0, Transform=(avango.gua.make_trans_mat(1, 1, 5) * avango.gua.make_scale_mat(30, 30, 30))) window = avango.oculus.nodes.OculusWindow() #notice, that the oculus screen transforms and translations are automatically #computed by the oculus. do not try to enter them yourself, or you will #most likely get a wrong result due to influence of the lenses #accessible fields: # SensorOrientation ##head pose (rotation and translation) # Resolution ##window resolution # EyeResolution ##recommended eye resolution (behaves strange so far) # LeftScreenSize ## size of left screen in meters # RightScreenSize ## size of right screen in meters # LeftScreenTranslation ## translation of left screen in meters # RightScreenTranslation ## translation of right screen in meters # EyeDistance ## distance between both eyes in meters. for SDKs < v0.6, this is fixed to 0.064 # start the window in fullscreen and with the oculus window as primary display in order to fit the # window nicely on the HMD window.Size.value = window.Resolution.value window.LeftResolution.value = window.Resolution.value window.RightResolution.value = window.Resolution.value window.EnableFullscreen.value = True avango.gua.register_window("window", window) cam = avango.gua.nodes.CameraNode(LeftScreenPath="/nav/head/left_screen", RightScreenPath="/nav/head/right_screen", SceneGraph="scenegraph", Resolution=window.LeftResolution.value, OutputWindowName="window", EyeDistance=window.EyeDistance.value, EnableStereo=True) res_pass = avango.gua.nodes.ResolvePassDescription() res_pass.EnableSSAO.value = True res_pass.SSAOIntensity.value = 4.0 res_pass.SSAOFalloff.value = 10.0 res_pass.SSAORadius.value = 7.0 #res_pass.EnableScreenSpaceShadow.value = True res_pass.EnvironmentLightingColor.value = avango.gua.Color(0.1, 0.1, 0.1) res_pass.ToneMappingMode.value = avango.gua.ToneMappingMode.UNCHARTED res_pass.Exposure.value = 1.0 res_pass.BackgroundColor.value = avango.gua.Color(0.45, 0.5, 0.6) anti_aliasing = avango.gua.nodes.SSAAPassDescription() pipeline_description = avango.gua.nodes.PipelineDescription(Passes=[ avango.gua.nodes.TriMeshPassDescription(), avango.gua.nodes.LightVisibilityPassDescription(), res_pass, anti_aliasing, ]) cam.PipelineDescription.value = pipeline_description left_screen = avango.gua.nodes.ScreenNode( Name="left_screen", Width=window.LeftScreenSize.value.x, Height=window.LeftScreenSize.value.y, Transform=avango.gua.make_trans_mat( window.LeftScreenTranslation.value)) right_screen = avango.gua.nodes.ScreenNode( Name="right_screen", Width=window.RightScreenSize.value.x, Height=window.RightScreenSize.value.y, Transform=avango.gua.make_trans_mat( window.RightScreenTranslation.value)) head = avango.gua.nodes.TransformNode( Name="head", Children=[left_screen, right_screen, cam], Transform=avango.gua.make_identity_mat()) nav = avango.gua.nodes.TransformNode(Name="nav", Transform=avango.gua.make_trans_mat( 0.0, 0.0, 2.0), Children=[head]) graph.Root.value.Children.value = [transform1, transform2, light, nav] #setup viewer viewer = avango.gua.nodes.Viewer() viewer.SceneGraphs.value = [graph] viewer.Windows.value = [window] monkey_updater = TimedRotate() timer = avango.nodes.TimeSensor() monkey_updater.TimeIn.connect_from(timer.Time) head.Transform.connect_from(window.SensorOrientation) transform1.Transform.connect_from(monkey_updater.MatrixOut) guaVE = GuaVE() guaVE.start(locals(), globals()) viewer.run()
def start(): graph = avango.gua.nodes.SceneGraph(Name = "scene") loader = avango.gua.nodes.TriMeshLoader() for x in range(0, CUBE_COUNT_X): for y in range(0, CUBE_COUNT_Y): for z in range(0, CUBE_COUNT_Z): new_cube = loader.create_geometry_from_file("cube" + str(x) + str(y) + str(z), "data/objects/sphere.obj", avango.gua.LoaderFlags.DEFAULTS | avango.gua.LoaderFlags.MAKE_PICKABLE) new_cube.Transform.value = avango.gua.make_trans_mat(x, y, z) * \ avango.gua.make_scale_mat(0.3, 0.3, 0.3) graph.Root.value.Children.value.append(new_cube) light = avango.gua.nodes.LightNode( Type=avango.gua.LightType.POINT, Name = "sun", Color = avango.gua.Color(1.0, 1.0, 0.7), Brightness = 10 ) light.Transform.value = avango.gua.make_trans_mat((CUBE_COUNT_X - 1.0) * 0.5, (CUBE_COUNT_Y - 1.0) * 0.5, (CUBE_COUNT_Z - 1.0) * 0.5) * \ avango.gua.make_scale_mat(100) pick_ray = avango.gua.nodes.RayNode(Name = "pick_ray") pick_ray.Transform.value = avango.gua.make_trans_mat(0.0, -1.0, 0.0) * \ avango.gua.make_scale_mat(1.0, 1.0, 50.0) ray_geom = loader.create_geometry_from_file( "ray_geom", "data/objects/cylinder.obj", avango.gua.LoaderFlags.DEFAULTS ) ray_geom.Transform.value = avango.gua.make_scale_mat(0.1, 0.1, 100) pick_ray.Children.value.append(ray_geom) screen = avango.gua.nodes.ScreenNode(Name = "screen", Width = 4.8, Height = 2.7) screen.Transform.value = avango.gua.make_trans_mat(0.0, 0.0, -2.5) graph.Root.value.Children.value.append(light) picker = Picker() picker.SceneGraph.value = graph picker.Ray.value = pick_ray material_updater = MaterialUpdater() material_updater.PickedNodes.connect_from(picker.Results) width = 1920; height = int(width * 9.0 / 16.0) size = avango.gua.Vec2ui(width, height) camera = avango.gua.nodes.CameraNode( Name = "cam", LeftScreenPath = "/cam/screen", SceneGraph = "scene", Resolution = size, OutputWindowName = "window", Children = [screen, pick_ray], Transform = avango.gua.make_trans_mat(0.0, 0.0, 7.0) ) camera.PipelineDescription.value.EnableABuffer.value = True graph.Root.value.Children.value.append(camera) window = avango.gua.nodes.Window( Size = size, Title = "picking", LeftResolution = size ) avango.gua.register_window("window", window) navigator = examples_common.navigator.Navigator() navigator.StartLocation.value = camera.Transform.value.get_translate() navigator.OutTransform.connect_from(camera.Transform) navigator.RotationSpeed.value = 0.2 navigator.MotionSpeed.value = 0.04 camera.Transform.connect_from(navigator.OutTransform) viewer = avango.gua.nodes.Viewer() viewer.SceneGraphs.value = [graph] viewer.Windows.value = [window] guaVE = GuaVE() guaVE.start(locals(), globals()) viewer.run()
def start(): # disable logger warningss logger = avango.gua.nodes.Logger(EnableWarning = False) # get the server ip server_ip = str(sys.argv[1]) # get the workspace config file # workspace_config_file = str(sys.argv[2]) exec('from ' + workspace_config_file.replace("/", ".").replace(".py", "") + ' import displays', globals()) # get the workspace id workspace_id = int(sys.argv[3]) # get the display group id display_group_id = int(sys.argv[4]) # get the screen id screen_id = int(sys.argv[5]) # get the display name display_name = str(sys.argv[6]) # get own hostname hostname = open('/etc/hostname', 'r').readline() hostname = hostname.strip(" \n") print("This client is running on", hostname, "and listens to server", server_ip) print("It is responsible for workspace", workspace_id, ", display group", display_group_id, "and screen", screen_id) # preload materials and shading models avango.gua.load_shading_models_from("data/materials") avango.gua.load_materials_from("data/materials") # create distribution node nettrans = avango.gua.nodes.NetTransform( Name = "net", # specify role, ip, and port Groupname = "AVCLIENT|{0}|7432".format(server_ip) ) # create a dummy scenegraph to be extended by distribution graph = avango.gua.nodes.SceneGraph(Name = "scenegraph") graph.Root.value.Children.value = [nettrans] # create material updaters as this cannot be distributed avango.gua.load_shading_models_from("data/materials") avango.gua.load_materials_from("data/materials") timer = avango.nodes.TimeSensor() water_updater = ClientMaterialUpdaters.TimedMaterialUniformUpdate() water_updater.MaterialName.value = "data/materials/Water.gmd" water_updater.UniformName.value = "time" water_updater.TimeIn.connect_from(timer.Time) ''' # PLOD Stuff _loader = avango.gua.nodes.PLODLoader() _loader.UploadBudget.value = 256 _loader.RenderBudget.value = 4*1024 _loader.OutOfCoreBudget.value = 24*1024 # Valcamonica _path = "/mnt/pitoti/KDN_LOD/PITOTI_KDN_LOD/01_SFM-Befliegung_Seradina_PointCloud/" # opt path #_path = "/media/SSD_500GB/CONVERTED_Seradina_Parts/" # ssd path _node = _loader.create_geometry_from_file("seradina1_", "/mnt/pitoti/Seradina_FULL_SCAN/Parts/sera_part_01.kdn", avango.gua.PLODLoaderFlags.DEFAULTS) _node = _loader.create_geometry_from_file("seradina2_", "/mnt/pitoti/Seradina_FULL_SCAN/Parts/sera_part_02.kdn", avango.gua.PLODLoaderFlags.DEFAULTS) _node = _loader.create_geometry_from_file("seradina3_", "/mnt/pitoti/Seradina_FULL_SCAN/Parts/sera_part_03.kdn", avango.gua.PLODLoaderFlags.DEFAULTS) _node = _loader.create_geometry_from_file("seradina4_", "/mnt/pitoti/Seradina_FULL_SCAN/Parts/sera_part_04.kdn", avango.gua.PLODLoaderFlags.DEFAULTS) _node = _loader.create_geometry_from_file("seradina5_", "/mnt/pitoti/Seradina_FULL_SCAN/Parts/sera_part_05.kdn", avango.gua.PLODLoaderFlags.DEFAULTS) _node = _loader.create_geometry_from_file("seradina6_", "/mnt/pitoti/Seradina_FULL_SCAN/Parts/sera_part_06.kdn", avango.gua.PLODLoaderFlags.DEFAULTS) _node = _loader.create_geometry_from_file("seradina7_", "/mnt/pitoti/Seradina_FULL_SCAN/Parts/sera_part_07.kdn", avango.gua.PLODLoaderFlags.DEFAULTS) _node = _loader.create_geometry_from_file("seradina8_", "/mnt/pitoti/Seradina_FULL_SCAN/Parts/sera_part_08.kdn", avango.gua.PLODLoaderFlags.DEFAULTS) _node = _loader.create_geometry_from_file("seradina9_", "/mnt/pitoti/Seradina_FULL_SCAN/Parts/sera_part_09.kdn", avango.gua.PLODLoaderFlags.DEFAULTS) _node = _loader.create_geometry_from_file("seradina10_", "/mnt/pitoti/Seradina_FULL_SCAN/Parts/sera_part_10.kdn", avango.gua.PLODLoaderFlags.DEFAULTS) _node = _loader.create_geometry_from_file("seradina11_", "/mnt/pitoti/Seradina_FULL_SCAN/Parts/sera_part_11.kdn", avango.gua.PLODLoaderFlags.DEFAULTS) _node = _loader.create_geometry_from_file("seradina12_", "/mnt/pitoti/Seradina_FULL_SCAN/Parts/sera_part_12.kdn", avango.gua.PLODLoaderFlags.DEFAULTS) _node = _loader.create_geometry_from_file("seradina13_", "/mnt/pitoti/Seradina_FULL_SCAN/Parts/sera_part_13.kdn", avango.gua.PLODLoaderFlags.DEFAULTS) _node = _loader.create_geometry_from_file("seradina14_", "/mnt/pitoti/Seradina_FULL_SCAN/Parts/sera_part_14.kdn", avango.gua.PLODLoaderFlags.DEFAULTS) _node = _loader.create_geometry_from_file("seradina15_", "/mnt/pitoti/Seradina_FULL_SCAN/Parts/sera_part_15.kdn", avango.gua.PLODLoaderFlags.DEFAULTS) _node = _loader.create_geometry_from_file("seradina16_", "/mnt/pitoti/Seradina_FULL_SCAN/Parts/sera_part_16.kdn", avango.gua.PLODLoaderFlags.DEFAULTS) # seradina rock _path = "/mnt/pitoti/XYZ_ALL/new_pitoti_sampling/" # opt path #_path = "/media/SSD_500GB/Pitoti_Resampled/" # ssd path _node = _loader.create_geometry_from_file("rock", _path + "TLS_Seradina_Rock-12C.kdn", avango.gua.PLODLoaderFlags.DEFAULTS) # seradina pitoti _node = _loader.create_geometry_from_file("pitoti1", _path + "Area-1_Warrior-scene_P01-1.kdn", avango.gua.PLODLoaderFlags.DEFAULTS) _node = _loader.create_geometry_from_file("pitoti2", _path + "Area-1_Warrior-scene_P01-2.kdn", avango.gua.PLODLoaderFlags.DEFAULTS) _node = _loader.create_geometry_from_file("pitoti3", _path + "Area-1_Warrior-scene_P01-3.kdn", avango.gua.PLODLoaderFlags.DEFAULTS) _node = _loader.create_geometry_from_file("pitoti4", _path + "Area-1_Warrior-scene_P01-4.kdn", avango.gua.PLODLoaderFlags.DEFAULTS) _node = _loader.create_geometry_from_file("pitoti5", _path + "Area-1_Warrior-scene_P02-1.kdn", avango.gua.PLODLoaderFlags.DEFAULTS) _node = _loader.create_geometry_from_file("pitoti6", _path + "Area-1_Warrior-scene_P02-2.kdn", avango.gua.PLODLoaderFlags.DEFAULTS) _node = _loader.create_geometry_from_file("pitoti7", _path + "Area-1_Warrior-scene_P02-3.kdn", avango.gua.PLODLoaderFlags.DEFAULTS) _node = _loader.create_geometry_from_file("pitoti8", _path + "Area-1_Warrior-scene_P02-4.kdn", avango.gua.PLODLoaderFlags.DEFAULTS) _node = _loader.create_geometry_from_file("pitoti9", _path + "Area-1_Warrior-scene_P03-1.kdn", avango.gua.PLODLoaderFlags.DEFAULTS) _node = _loader.create_geometry_from_file("pitoti10", _path + "Area-1_Warrior-scene_P03-2.kdn", avango.gua.PLODLoaderFlags.DEFAULTS) _node = _loader.create_geometry_from_file("pitoti11", _path + "Area-1_Warrior-scene_P03-3.kdn", avango.gua.PLODLoaderFlags.DEFAULTS) _node = _loader.create_geometry_from_file("pitoti12", _path + "Area-1_Warrior-scene_P03-4.kdn", avango.gua.PLODLoaderFlags.DEFAULTS) _node = _loader.create_geometry_from_file("pitoti13", _path + "Area-2_Plowing-scene_P01-1.kdn", avango.gua.PLODLoaderFlags.DEFAULTS) _node = _loader.create_geometry_from_file("pitoti14", _path + "Area-2_Plowing-scene_P01-2.kdn", avango.gua.PLODLoaderFlags.DEFAULTS) _node = _loader.create_geometry_from_file("pitoti15", _path + "Area-2_Plowing-scene_P01-3.kdn", avango.gua.PLODLoaderFlags.DEFAULTS) _node = _loader.create_geometry_from_file("pitoti16", _path + "Area-2_Plowing-scene_P01-4.kdn", avango.gua.PLODLoaderFlags.DEFAULTS) _node = _loader.create_geometry_from_file("pitoti17", _path + "Area-2_Plowing-scene_P02-1.kdn", avango.gua.PLODLoaderFlags.DEFAULTS) _node = _loader.create_geometry_from_file("pitoti18", _path + "Area-2_Plowing-scene_P02-2.kdn", avango.gua.PLODLoaderFlags.DEFAULTS) _node = _loader.create_geometry_from_file("pitoti19", _path + "Area-2_Plowing-scene_P02-3.kdn", avango.gua.PLODLoaderFlags.DEFAULTS) _node = _loader.create_geometry_from_file("pitoti20", _path + "Area-2_Plowing-scene_P02-4.kdn", avango.gua.PLODLoaderFlags.DEFAULTS) _node = _loader.create_geometry_from_file("pitoti21", _path + "Area-10_Hunting_Scene_P01.kdn", avango.gua.PLODLoaderFlags.DEFAULTS) _node = _loader.create_geometry_from_file("pitoti22", _path + "Area-10_Hunting_Scene_P02.kdn", avango.gua.PLODLoaderFlags.DEFAULTS) _node = _loader.create_geometry_from_file("pitoti23", _path + "Area-10_Hunting_Scene_P03.kdn", avango.gua.PLODLoaderFlags.DEFAULTS) _node = _loader.create_geometry_from_file("pitoti24", _path + "Area-6_house_P01.kdn", avango.gua.PLODLoaderFlags.DEFAULTS) _node = _loader.create_geometry_from_file("pitoti25", _path + "Area-6_house_P02.kdn", avango.gua.PLODLoaderFlags.DEFAULTS) _node = _loader.create_geometry_from_file("pitoti26", _path + "Area-3_Archers_P01.kdn", avango.gua.PLODLoaderFlags.DEFAULTS) _node = _loader.create_geometry_from_file("pitoti27", _path + "Area-3_Archers_P02.kdn", avango.gua.PLODLoaderFlags.DEFAULTS) _node = _loader.create_geometry_from_file("pitoti28", _path + "Area_4_hunter_with_bow.kdn", avango.gua.PLODLoaderFlags.DEFAULTS) _node = _loader.create_geometry_from_file("pitoti29", _path + "Area-5_hunter_with_speer_P01.kdn", avango.gua.PLODLoaderFlags.DEFAULTS) _node = _loader.create_geometry_from_file("pitoti30", _path + "Area-5_hunter_with_speer_P02.kdn", avango.gua.PLODLoaderFlags.DEFAULTS) # END PLOD stuff ''' # get the display instance for _display in displays: if _display.name == display_name: handled_display_instance = _display # create a viewer viewer = avango.gua.nodes.Viewer() # Create a view for each displaystring (= slot) _string_num = 0 views = [] for _displaystring in handled_display_instance.displaystrings: _view = View() _view.my_constructor(graph, viewer, handled_display_instance, workspace_id, display_group_id, screen_id, _string_num) views.append(_view) _string_num += 1 viewer.SceneGraphs.value = [graph] # create client portal manager portal_manager = ClientPortalManager() portal_manager.my_constructor(graph, views) shell_client = GuaVE() shell_client.start(locals(), globals()) # start rendering process viewer.run()
def start(filename): # setup scenegraph graph = avango.gua.nodes.SceneGraph(Name = "scenegraph") plodloader = avango.gua.nodes.PLODLoader() plodloader.UploadBudget.value = 32 plodloader.RenderBudget.value = 2048 plodloader.OutOfCoreBudget.value = 4096 plod_geode = plodloader.create_geometry_from_file( filename, avango.gua.PLODLoaderFlags.NORMALIZE_SCALE | avango.gua.PLODLoaderFlags.NORMALIZE_POSITION ) #filename, avango.gua.PLODLoaderFlags.DEFAULTS) #light = avango.gua.nodes.LightNode( # Type=avango.gua.LightType.POINT, # Name = "light", Color = avango.gua.Color(1.0, 1.0, 1.0)) light = avango.gua.nodes.LightNode( Type=avango.gua.LightType.POINT, Name = "light", Color = avango.gua.Color(1.0, 1.0, 1.0), Brightness = 50.0, Transform = avango.gua.make_trans_mat(1, 1, 5) * avango.gua.make_scale_mat(15, 15, 15) ) light.Transform.value = avango.gua.make_trans_mat(1, 1, 2) * avango.gua.make_scale_mat(15, 15, 15) size = avango.gua.Vec2ui(1024, 768) eye = avango.gua.nodes.TransformNode(Name = "eye") eye.Transform.value = avango.gua.make_trans_mat(0.0, 0.0, 3.5) window = avango.gua.nodes.GlfwWindow( Size = size, LeftResolution = size ) avango.gua.register_window("window", window) cam = avango.gua.nodes.CameraNode( LeftScreenPath = "/screen", SceneGraph = "scenegraph", Resolution = size, OutputWindowName = "window", Transform = avango.gua.make_trans_mat(0.0, 0.0, 3.5) ) resolve_pass = avango.gua.nodes.ResolvePassDescription() resolve_pass.BackgroundMode.value = avango.gua.BackgroundMode.COLOR resolve_pass.BackgroundColor.value = avango.gua.Color(1,0,0) resolve_pass.ToneMappingMode.value = avango.gua.ToneMappingMode.LINEAR pipeline_description = avango.gua.nodes.PipelineDescription() pipeline_description.Passes.value = [ avango.gua.nodes.TriMeshPassDescription() , avango.gua.nodes.TexturedQuadPassDescription() , avango.gua.nodes.PLODPassDescription() , avango.gua.nodes.LightVisibilityPassDescription() , avango.gua.nodes.BBoxPassDescription() , resolve_pass , avango.gua.nodes.TexturedScreenSpaceQuadPassDescription() ] cam.PipelineDescription.value = pipeline_description screen = avango.gua.nodes.ScreenNode(Name = "screen", Width = 4, Height = 3) screen = avango.gua.nodes.ScreenNode( Name = "screen", Width = 4, Height = 3, Children = [cam] ) screen.Children.value = [eye] graph.Root.value.Children.value = [plod_geode, light, screen] # setup viewing size = avango.gua.Vec2ui(1024, 768) #setup viewer viewer = avango.gua.nodes.Viewer() viewer.SceneGraphs.value = [graph] viewer.Windows.value = [window] timer = avango.nodes.TimeSensor() guaVE = GuaVE() guaVE.start(locals(), globals()) viewer.run()
def start(): # setup scenegraph graph = avango.gua.nodes.SceneGraph(Name="scenegraph") loader = avango.gua.nodes.TriMeshLoader() videoloader = avango.gua.nodes.Video3DLoader() live_avatar_node = videoloader.load( "live_avatar", "/opt/kinect-resources/rgbd-framework/rgbd-daemon/kinect_recordings/surface_23_24_25_26_hades.ks" ) live_avatar_transform = avango.gua.nodes.TransformNode( Children=[live_avatar_node]) recorded_avatar_node = videoloader.load( "recorded_avatar", "/opt/kinect-resources/rgbd-framework/rgbd-daemon/kinect_recordings/surface_23_24_25_26_hades_playback.ks" ) recorded_avatar_transform = avango.gua.nodes.TransformNode( Children=[recorded_avatar_node]) light = avango.gua.nodes.LightNode( Type=avango.gua.LightType.POINT, Name="light", Color=avango.gua.Color(1.0, 1.0, 1.0), Brightness=100.0, Transform=(avango.gua.make_trans_mat(1, 1, 5) * avango.gua.make_scale_mat(30, 30, 30))) size = avango.gua.Vec2ui(1024, 768) window = avango.gua.nodes.GlfwWindow(Size=size, LeftResolution=size) avango.gua.register_window("window", window) cam = avango.gua.nodes.CameraNode(LeftScreenPath="/screen", SceneGraph="scenegraph", Resolution=size, OutputWindowName="window", Transform=avango.gua.make_trans_mat( 0.0, 0.0, 3.5)) res_pass = avango.gua.nodes.ResolvePassDescription() res_pass.EnableSSAO.value = True res_pass.SSAOIntensity.value = 4.0 res_pass.SSAOFalloff.value = 10.0 res_pass.SSAORadius.value = 7.0 #res_pass.EnableScreenSpaceShadow.value = True res_pass.EnvironmentLightingColor.value = avango.gua.Color(0.1, 0.1, 0.1) res_pass.ToneMappingMode.value = avango.gua.ToneMappingMode.UNCHARTED res_pass.Exposure.value = 1.0 res_pass.BackgroundColor.value = avango.gua.Color(0.45, 0.5, 0.6) anti_aliasing = avango.gua.nodes.SSAAPassDescription() pipeline_description = avango.gua.nodes.PipelineDescription(Passes=[ avango.gua.nodes.TriMeshPassDescription(), avango.gua.nodes.LightVisibilityPassDescription(), avango.gua.nodes.Video3DPassDescription(), res_pass, anti_aliasing, ]) cam.PipelineDescription.value = pipeline_description screen = avango.gua.nodes.ScreenNode(Name="screen", Width=2, Height=1.5, Children=[cam]) graph.Root.value.Children.value = [ live_avatar_transform, recorded_avatar_transform, light, screen ] #setup viewer viewer = avango.gua.nodes.Viewer() viewer.SceneGraphs.value = [graph] viewer.Windows.value = [window] frame_updater = TimedRotate() timer = avango.nodes.TimeSensor() frame_updater.TimeIn.connect_from(timer.Time) live_avatar_transform.Transform.connect_from( frame_updater.live_avatar_matrix) recorded_avatar_transform.Transform.connect_from( frame_updater.recorded_avatar_matrix) guaVE = GuaVE() guaVE.start(locals(), globals()) viewer.run()
def start(): graph = avango.gua.nodes.SceneGraph(Name="scene") loader = avango.gua.nodes.TriMeshLoader() fallback_mat = avango.gua.create_material( avango.gua.MaterialCapabilities.COLOR_VALUE | avango.gua.MaterialCapabilities.ROUGHNESS_VALUE) fallback_mat.set_uniform("Roughness", 0.6) for x in range(0, CUBE_COUNT_X): for y in range(0, CUBE_COUNT_Y): for z in range(0, CUBE_COUNT_Z): new_cube = loader.create_geometry_from_file( "cube" + str(x) + str(y) + str(z), "data/objects/monkey.obj", fallback_mat, #avango.gua.LoaderFlags.DEFAULTS ) new_cube.Transform.value = avango.gua.make_trans_mat(x*2, y*2, z*2) * \ avango.gua.make_scale_mat(0.3, 0.3, 0.3) graph.Root.value.Children.value.append(new_cube) new_cube.ShadowMode.value = 1 sun_light = avango.gua.nodes.LightNode( Name="sun_light", Type=avango.gua.LightType.SUN, Color=avango.gua.Color(1.0, 1.0, 0.7), EnableShadows=True, ShadowMapSize=1024, ShadowOffset=0.0005, ShadowCascadedSplits=[0.1, 4, 7, 20], ShadowMaxDistance=30, ShadowNearClippingInSunDirection=100, ShadowFarClippingInSunDirection=100, Brightness=4) graph.Root.value.Children.value.append(sun_light) floor = loader.create_geometry_from_file("floor", "data/objects/plane.obj", fallback_mat, avango.gua.LoaderFlags.DEFAULTS) floor.Transform.value = avango.gua.make_scale_mat( 200, 1, 200) * avango.gua.make_trans_mat(-0.5, -0.2, -0.5) floor.ShadowMode.value = 0 graph.Root.value.Children.value.append(floor) width = 700 height = int(width * 9.0 / 16.0) size4k = avango.gua.Vec2ui(3840, 2160) size = size4k # avango.gua.Vec2ui(width, height) vsync = True screen_tl = avango.gua.nodes.ScreenNode( Name="screen_tl", Width=1.6, Height=0.9, Transform=avango.gua.make_trans_mat(-0.8, 0.45, -2.5)) camera_tl = avango.gua.nodes.CameraNode( Name="cam_tl", BlackList=[], LeftScreenPath="/head/cam_tl/screen_tl", RightScreenPath="/head/cam_tl/screen_tl", SceneGraph="scene", Resolution=size, OutputWindowName="window_tl", EyeDistance=0.2, EnableStereo=False, Children=[screen_tl]) screen_tr = avango.gua.nodes.ScreenNode( Name="screen_tr", Width=1.6, Height=0.9, Transform=avango.gua.make_trans_mat(0.8, 0.45, -2.5)) camera_tr = avango.gua.nodes.CameraNode( Name="cam_tr", LeftScreenPath="/head/cam_tr/screen_tr", RightScreenPath="/head/cam_tr/screen_tr", SceneGraph="scene", Resolution=size, OutputWindowName="window_tr", EyeDistance=0.2, EnableStereo=False, Children=[screen_tr]) screen_bl = avango.gua.nodes.ScreenNode( Name="screen_bl", Width=1.6, Height=0.9, Transform=avango.gua.make_trans_mat(-0.8, -0.45, -2.5)) camera_bl = avango.gua.nodes.CameraNode( Name="cam_bl", BlackList=[], LeftScreenPath="/head/cam_bl/screen_bl", RightScreenPath="/head/cam_bl/screen_bl", SceneGraph="scene", Resolution=size, OutputWindowName="window_bl", EyeDistance=0.2, EnableStereo=False, Children=[screen_bl]) screen_br = avango.gua.nodes.ScreenNode( Name="screen_br", Width=1.6, Height=0.9, Transform=avango.gua.make_trans_mat(0.8, -0.45, -2.5)) camera_br = avango.gua.nodes.CameraNode( Name="cam_br", BlackList=[], LeftScreenPath="/head/cam_br/screen_br", RightScreenPath="/head/cam_br/screen_br", SceneGraph="scene", Resolution=size, OutputWindowName="window_br", EyeDistance=0.2, EnableStereo=False, Children=[screen_br]) res_pass = avango.gua.nodes.ResolvePassDescription() res_pass.EnableSSAO.value = True res_pass.SSAOIntensity.value = 3.0 res_pass.SSAOFalloff.value = 20.0 res_pass.SSAORadius.value = 10.0 #res_pass.EnvironmentLightingTexture.value = "day_skymap" #res_pass.AlternativeEnvironmentLightingTexture.value = "night_skymap" #res_pass.EnvironmentLightingMode.value = avango.gua.EnvironmentLightingMode.CUBEMAP res_pass.ToneMappingMode.value = avango.gua.ToneMappingMode.UNCHARTED res_pass.Exposure.value = 1.0 res_pass.VignetteColor.value = avango.gua.Vec4(0, 0, 0, 0.7) res_pass.VignetteCoverage.value = 0.0 res_pass.EnableFog.value = True res_pass.FogStart.value = 30 res_pass.FogEnd.value = 100 #res_pass.BackgroundMode.value = avango.gua.BackgroundMode.CUBEMAP_TEXTURE #res_pass.BackgroundTexture.value = "day_skymap" #res_pass.AlternativeBackgroundTexture.value = "night_skymap" sky_pass = avango.gua.nodes.SkyMapPassDescription( OutputTextureName="day_skymap") avango.gua.create_texture_cube( "night_skymap", "data/textures/stars/purple-nebula/purple-nebula_right1.jpg", "data/textures/stars/purple-nebula/purple-nebula_left2.jpg", "data/textures/stars/purple-nebula/purple-nebula_bottom4.jpg", "data/textures/stars/purple-nebula/purple-nebula_top3.jpg", "data/textures/stars/purple-nebula/purple-nebula_front5.jpg", "data/textures/stars/purple-nebula/purple-nebula_back6.jpg") pipeline_description = avango.gua.nodes.PipelineDescription(Passes=[ sky_pass, avango.gua.nodes.TriMeshPassDescription(), avango.gua.nodes.LightVisibilityPassDescription(), res_pass, avango.gua.nodes.TexturedScreenSpaceQuadPassDescription() ]) camera_tl.PipelineDescription.value = pipeline_description camera_tr.PipelineDescription.value = pipeline_description camera_bl.PipelineDescription.value = pipeline_description camera_br.PipelineDescription.value = pipeline_description head = avango.gua.nodes.TransformNode( Name="head", Children=[camera_tl, camera_tr, camera_bl, camera_br]) graph.Root.value.Children.value.append(head) window_tl = avango.gua.nodes.Window(Size=size, Display=":0.0", SwapGroup=1, SwapBarrier=1, Title="day cycle top left", LeftResolution=size, RightResolution=size, EnableVsync=vsync, StereoMode=avango.gua.StereoMode.MONO) window_tr = avango.gua.nodes.Window(Size=size, Display=":0.1", SwapGroup=1, SwapBarrier=1, Title="day cycle top right", LeftResolution=size, RightResolution=size, EnableVsync=vsync, StereoMode=avango.gua.StereoMode.MONO) window_bl = avango.gua.nodes.Window(Size=size, Display=":0.2", SwapGroup=1, SwapBarrier=1, Title="day cycle bottom left", LeftResolution=size, RightResolution=size, EnableVsync=vsync, StereoMode=avango.gua.StereoMode.MONO) window_br = avango.gua.nodes.Window(Size=size, Display=":0.3", SwapGroup=1, SwapBarrier=1, Title="day cycle bottom right", LeftResolution=size, RightResolution=size, EnableVsync=vsync, StereoMode=avango.gua.StereoMode.MONO) avango.gua.register_window("window_tl", window_tl) avango.gua.register_window("window_tr", window_tr) avango.gua.register_window("window_bl", window_bl) avango.gua.register_window("window_br", window_br) navigator = examples_common.navigator.Navigator() navigator.StartLocation.value = head.Transform.value.get_translate() navigator.OutTransform.connect_from(head.Transform) navigator.RotationSpeed.value = 0.2 navigator.MotionSpeed.value = 0.04 head.Transform.connect_from(navigator.OutTransform) viewer = avango.gua.nodes.Viewer() viewer.SceneGraphs.value = [graph] viewer.Windows.value = [window_tl, window_tr, window_bl, window_br] timer = avango.nodes.TimeSensor() sun_updater = SunUpdater(TimeScale=3500) sun_updater.TimeIn.connect_from(timer.Time) sun_light.Transform.connect_from(sun_updater.MatrixOut) sun_light.Color.connect_from(sun_updater.SunColorOut) sky_pass.LightDirection.connect_from(sun_updater.DirectionOut) sky_pass.GroundColor.connect_from(sun_updater.GroundColorOut) res_pass.BackgroundTextureBlendFactor.connect_from( sun_updater.BlendFactorOut) res_pass.EnvironmentLightingTextureBlendFactor.connect_from( sun_updater.BlendFactorOut) def toggle_swap_barrier(): window_tl.SwapGroup.value = (window_tl.SwapGroup.value + 1) % 2 window_tr.SwapGroup.value = (window_tr.SwapGroup.value + 1) % 2 window_bl.SwapGroup.value = (window_bl.SwapGroup.value + 1) % 2 window_br.SwapGroup.value = (window_br.SwapGroup.value + 1) % 2 window_tl.SwapBarrier.value = (window_tl.SwapBarrier.value + 1) % 2 window_tr.SwapBarrier.value = (window_tr.SwapBarrier.value + 1) % 2 window_bl.SwapBarrier.value = (window_bl.SwapBarrier.value + 1) % 2 window_br.SwapBarrier.value = (window_br.SwapBarrier.value + 1) % 2 print("window_tl.SwapGroup.value = ", window_tl.SwapGroup.value) print("window_tr.SwapGroup.value = ", window_tr.SwapGroup.value) print("window_bl.SwapGroup.value = ", window_bl.SwapGroup.value) print("window_br.SwapGroup.value = ", window_br.SwapGroup.value) print("window_tl.SwapBarrier.value = ", window_tl.SwapBarrier.value) print("window_tr.SwapBarrier.value = ", window_tr.SwapBarrier.value) print("window_bl.SwapBarrier.value = ", window_bl.SwapBarrier.value) print("window_br.SwapBarrier.value = ", window_br.SwapBarrier.value) guaVE = GuaVE() guaVE.start(locals(), globals()) avango.evaluate() print("sleep 5 seconds") time.sleep(5) viewer.run()
def start(): # setup scenegraph graph = avango.gua.nodes.SceneGraph(Name="scenegraph") #environment: tri_mesh_loader = avango.gua.nodes.TriMeshLoader() path = "/opt/project_animation/demo/data/objects/cube2.obj" flags = avango.gua.LoaderFlags.NORMALIZE_POSITION \ | avango.gua.LoaderFlags.NORMALIZE_SCALE \ | avango.gua.LoaderFlags.OPTIMIZE_GEOMETRY \ | avango.gua.LoaderFlags.MAKE_PICKABLE \ | avango.gua.LoaderFlags.LOAD_MATERIALS plane = \ tri_mesh_loader.create_geometry_from_file("cube", path, flags) plane.Transform.value *= \ avango.gua.make_scale_mat(10.0, 0.01, 10.0) *\ avango.gua.make_trans_mat(0, -3, 0) path2 = "/opt/project_animation/demo/data/objects/glass_2_3_nm.TGA" plane.Material.value.set_uniform("NormalMap", path2) sunlight = avango.gua.nodes.LightNode( Type=avango.gua.LightType.SUN, Name="light", Color=avango.gua.Color(245.0/255.0, 246.0/255.0, 178.0/255.0), Brightness=5.0, Transform=(avango.gua.make_rot_mat(119.5, 0.0, 1.0, 0.0) * avango.gua.make_rot_mat(-10, 1.0, 0.0, 0.0)) ) #view setup: size = avango.gua.Vec2ui(2560, 1440) window = avango.gua.nodes.GlfwWindow( Size=size, LeftResolution=size ) window.CursorMode.value = 2 window.EnableFullscreen.value = True cam = avango.gua.nodes.CameraNode(LeftScreenPath="/screen", SceneGraph="scenegraph", Resolution=size, OutputWindowName="window") #render pipeline pipeline_description = avango.gua.nodes.PipelineDescription( Passes=[ avango.gua.nodes.TriMeshPassDescription(), avango.gua.nodes.LightVisibilityPassDescription(), avango.gua.skelanim.nodes.SkeletalAnimationPassDescription(), avango.gua.nodes.ResolvePassDescription(), avango.gua.nodes.SSAAPassDescription(), ]) pipeline_description.Passes.value[3].EnableSSAO.value = True pipeline_description.Passes.value[3].SSAORadius.value = 2.0 pipeline_description.Passes.value[3].SSAOIntensity.value = 2.0 pipeline_description.Passes.value[3].BackgroundMode.value = 1 pipeline_description.Passes.value[3].BackgroundTexture.value = \ "/opt/avango/master/examples/picking/data/textures/skymap.jpg" pipeline_description.Passes.value[3].ToneMappingMode.value = \ avango.gua.ToneMappingMode.LINEAR #pipeline_description.EnableABuffer.value = True cam.PipelineDescription.value = pipeline_description cam.Transform.value = avango.gua.make_trans_mat(0.0, 0.0, 0.4) cam.FarClip.value = 300 cam.NearClip.value = 0.01 screen = avango.gua.nodes.ScreenNode(Name="screen", Width=0.8, Height=0.45) screen.Children.value = [cam] screen.Transform.value = avango.gua.make_trans_mat(0, 0.1, -2) graph.Root.value.Children.value = [screen, plane, sunlight] avango.gua.register_window("window", window) #setup viewer viewer = avango.gua.nodes.Viewer() viewer.SceneGraphs.value = [graph] viewer.Windows.value = [window] window.CursorMode.value = avango.gua.CursorMode.DISABLED #navigation navigator = examples_common.navigator.Navigator() #navigator.StartLocation.value = screen.Transform.value.get_translate() navigator.StartRotation.value = avango.gua.Vec2(0, 790) navigator.OutTransform.connect_from(screen.Transform) navigator.RotationSpeed.value = 0.2 navigator.MotionSpeed.value = 0.004 # enable navigation screen.Transform.connect_from(navigator.OutTransform) #XBOX Controller device_sensor = avango.daemon.nodes.DeviceSensor( DeviceService=avango.daemon.DeviceService()) device_sensor.Station.value = "device-xbox-1" #unreal tournament characters skel_mesh_loader = avango.gua.skelanim.nodes.SkeletalAnimationLoader() #LOOP MODE DEMO BOB path_bob = "/opt/project_animation/Assets/UnrealTournament/Characters/" +\ "Necris_Male/necris_male_ut4_SKELMESH.FBX" flags_bob = avango.gua.LoaderFlags.LOAD_MATERIALS \ | avango.gua.LoaderFlags.NORMALIZE_SCALE bob_loop = \ skel_mesh_loader.create_geometry_from_file("bob_loop", path_bob, flags_bob) bob_loop.Transform.value = avango.gua.make_trans_mat(0.0, -0.01, 0.0) *\ bob_loop.Transform.value *\ avango.gua.make_rot_mat(-90.0, 1.0, 0.0, 0.0) *\ avango.gua.make_scale_mat(0.2, 0.2, 0.2) graph.Root.value.Children.value.append(bob_loop) #load animations path_idle = "/opt/project_animation/Assets/" + \ "UnrealTournament/UniversalAnimations/Idle_Ready_Rif.FBX" path_run = "/opt/project_animation/Assets/" + \ "UnrealTournament/UniversalAnimations/Run_Fwd_Rif.FBX" bob_loop.load_animation(path_idle, "idle") bob_loop.load_animation(path_idle, "idle2") bob_loop.load_animation(path_run, "run_fwd") bob_loop.load_animation(path_run, "run_fwd2") #character control character_control_loop = CharacterControl() character_control_loop.my_constructor(bob_loop, bob_loop, AnimationConfig("idle"), window) character_control_loop.on_animation_end("idle", AnimationConfig("run_fwd", loop=True, speed=1.0, duration=3.0)) character_control_loop.on_animation_end("run_fwd", AnimationConfig("idle2", loop=False, speed=1.0, duration=3.0)) character_control_loop.on_animation_end("idle2", AnimationConfig("run_fwd2", loop=False, speed=1.0, duration=3.0)) character_control_loop.on_animation_end("run_fwd2", AnimationConfig("idle", loop=True, speed=1.0, duration=3.0)) #SPEED DEMO BOB bob_speed = skel_mesh_loader.create_geometry_from_file("bob_speed", path_bob, flags_bob) bob_speed.Transform.value = avango.gua.make_trans_mat(0.1, -0.01, 0.0) * \ bob_speed.Transform.value * \ avango.gua.make_rot_mat(-90.0, 1.0, 0.0, 0.0) * \ avango.gua.make_scale_mat(0.2, 0.2, 0.2) graph.Root.value.Children.value.append(bob_speed) #load animations bob_speed.load_animation(path_idle, "idle") bob_speed.load_animation(path_idle, "idle2") bob_speed.load_animation(path_run, "run_fwd") bob_speed.load_animation(path_run, "run_fwd2") #character control character_control_speed = CharacterControl() character_control_speed.my_constructor(bob_speed, bob_speed, AnimationConfig("idle"), window) character_control_speed.on_animation_end("idle", AnimationConfig("run_fwd", loop=True, speed=1.0, duration=3.0)) character_control_speed.on_animation_end("run_fwd", AnimationConfig("idle2", loop=True, speed=1.5, duration=3.0)) character_control_speed.on_animation_end("idle2", AnimationConfig("run_fwd2", loop=True, speed=1.5, duration=3.0)) character_control_speed.on_animation_end("run_fwd2", AnimationConfig("idle", loop=True, speed=1.0, duration=3.0)) #DURATION DEMO BOB bob_duration = skel_mesh_loader.create_geometry_from_file("bob_duration", path_bob, flags_bob) bob_duration.Transform.value = \ avango.gua.make_trans_mat(0.2, -0.01, 0.0) * \ bob_duration.Transform.value * \ avango.gua.make_rot_mat(-90.0, 1.0, 0.0, 0.0) * \ avango.gua.make_scale_mat(0.2, 0.2, 0.2) graph.Root.value.Children.value.append(bob_duration) #load animations bob_duration.load_animation(path_idle, "idle") bob_duration.load_animation(path_idle, "idle2") bob_duration.load_animation(path_run, "run_fwd") bob_duration.load_animation(path_run, "run_fwd2") #character control character_control_duration = CharacterControl() character_control_duration.my_constructor(bob_duration, bob_duration, AnimationConfig("idle"), window) character_control_duration.on_animation_end("idle", AnimationConfig("run_fwd", loop=True, speed=1.0, duration=1.0)) character_control_duration.on_animation_end("run_fwd", AnimationConfig("idle2", loop=True, speed=1.0, duration=2.0)) character_control_duration.on_animation_end("idle2", AnimationConfig("run_fwd2", loop=True, speed=1.0, duration=2.0)) character_control_duration.on_animation_end("run_fwd2", AnimationConfig("idle", loop=True, speed=1.0, duration=1.0)) #start animation sequence character_control_loop.switch_animation(AnimationConfig("idle", loop=False)) character_control_speed.switch_animation(AnimationConfig("idle", loop=False)) character_control_duration.switch_animation(AnimationConfig("idle", loop=False)) guaVE = GuaVE() guaVE.start(locals(), globals()) viewer.run()
def start(): # setup scenegraph graph = avango.gua.nodes.SceneGraph(Name="scenegraph") loader = avango.gua.nodes.TriMeshLoader() monkey = loader.create_geometry_from_file("monkey", "data/objects/monkey.obj", avango.gua.LoaderFlags.DEFAULTS) light = avango.gua.nodes.LightNode(Type=avango.gua.LightType.POINT, Name="light", Color=avango.gua.Color(1.0, 1.0, 1.0), Brightness=10) light.Transform.value = avango.gua.make_trans_mat( 1, 1, 2) * avango.gua.make_scale_mat(15, 15, 15) # setup viewing width = 3840 #1024 height = 2160 #768 eye_size = avango.gua.Vec2ui(width, height) window_size = avango.gua.Vec2ui(width, height) left_pos = avango.gua.Vec2ui(0, 0) right_pos = avango.gua.Vec2ui(0, 0) if STEREO_MODE == avango.gua.StereoMode.SIDE_BY_SIDE: right_pos.x = width + 1 window_size.x *= 2 window_left = avango.gua.nodes.Window( Size=window_size, Display=":0.0", #SwapGroup = 1, #SwapBarrier = 1, LeftPosition=left_pos, LeftResolution=eye_size, RightPosition=right_pos, RightResolution=eye_size, StereoMode=STEREO_MODE) avango.gua.register_window("window_left", window_left) window_right = avango.gua.nodes.Window( Size=window_size, Display=":0.0", # ":0.1", #SwapGroup = 1, #SwapBarrier = 1, LeftPosition=left_pos, LeftResolution=eye_size, RightPosition=right_pos, RightResolution=eye_size, StereoMode=STEREO_MODE) avango.gua.register_window("window_right", window_right) cam = avango.gua.nodes.CameraNode(Name="cam", LeftScreenPath="/screen", RightScreenPath="/screen", SceneGraph="scenegraph", Resolution=eye_size, EyeDistance=0.06, EnableStereo=True, LeftOutputWindow="window_left", RightOutputWindow="window_right", Transform=avango.gua.make_trans_mat( 0.0, 0.0, 0.5) # NearClip = ) screen = avango.gua.nodes.ScreenNode(Name="screen", Width=0.5, Height=0.5 * 0.3 / 0.4) screen.Transform.value = avango.gua.make_trans_mat(0.0, 0.0, 2.5) screen.Children.value = [cam] graph.Root.value.Children.value = [monkey, light, screen] #setup viewer viewer = avango.gua.nodes.Viewer() viewer.SceneGraphs.value = [graph] viewer.Windows.value = [window_left, window_right] viewer.DesiredFPS.value = 500.0 monkey_updater = TimedRotate() timer = avango.nodes.TimeSensor() monkey_updater.TimeIn.connect_from(timer.Time) monkey.Transform.connect_from(monkey_updater.MatrixOut) guaVE = GuaVE() guaVE.start(locals(), globals()) viewer.run()
def start(): # setup scenegraph graph = avango.gua.nodes.SceneGraph(Name="scenegraph") loader = avango.gua.nodes.TriMeshLoader() monkey1 = loader.create_geometry_from_file( "monkey", "data/objects/monkey.obj", avango.gua.LoaderFlags.NORMALIZE_SCALE) monkey2 = loader.create_geometry_from_file( "monkey", "data/objects/monkey.obj", avango.gua.LoaderFlags.NORMALIZE_SCALE) monkey1.Material.value.set_uniform("Color", avango.gua.Vec4(1.0, 0.766, 0.336, 1.0)) monkey1.Material.value.set_uniform("Roughness", 0.3) monkey1.Material.value.set_uniform("Metalness", 1.0) monkey2.Material.value.set_uniform("Color", avango.gua.Vec4(1.0, 0.266, 0.136, 1.0)) monkey2.Material.value.set_uniform("Roughness", 0.6) monkey2.Material.value.set_uniform("Metalness", 0.0) transform1 = avango.gua.nodes.TransformNode(Children=[monkey1]) transform2 = avango.gua.nodes.TransformNode( Transform=avango.gua.make_trans_mat(-0.5, 0.0, 0.0), Children=[monkey2]) light = avango.gua.nodes.LightNode( Type=avango.gua.LightType.POINT, Name="light", Color=avango.gua.Color(1.0, 1.0, 1.0), Brightness=100.0, Transform=(avango.gua.make_trans_mat(1, 1, 5) * avango.gua.make_scale_mat(30, 30, 30))) size = avango.gua.Vec2ui(1024, 768) window = avango.gua.nodes.GlfwWindow(Size=size, LeftResolution=size) avango.gua.register_window("window", window) cam = avango.gua.nodes.CameraNode( LeftScreenPath="/screen", SceneGraph="scenegraph", Resolution=size, OutputWindowName="window", Transform=avango.gua.make_trans_mat(0.0, 0.0, 3.5)) res_pass = avango.gua.nodes.ResolvePassDescription() res_pass.EnableSSAO.value = True res_pass.SSAOIntensity.value = 4.0 res_pass.SSAOFalloff.value = 10.0 res_pass.SSAORadius.value = 7.0 #res_pass.EnableScreenSpaceShadow.value = True res_pass.EnvironmentLightingColor.value = avango.gua.Color(0.1, 0.1, 0.1) res_pass.ToneMappingMode.value = avango.gua.ToneMappingMode.UNCHARTED res_pass.Exposure.value = 1.0 res_pass.BackgroundColor.value = avango.gua.Color(0.45, 0.5, 0.6) anti_aliasing = avango.gua.nodes.SSAAPassDescription() shader_source = "" with open('effect3.frag') as f: shader_source = f.read() effect = avango.gua.nodes.FullscreenPassDescription(Source=shader_source) effect_updater = UpdateShaderTime() effect_updater.effect = effect pipeline_description = avango.gua.nodes.PipelineDescription(Passes=[ avango.gua.nodes.TriMeshPassDescription(), avango.gua.nodes.LightVisibilityPassDescription(), res_pass, anti_aliasing, effect ]) cam.PipelineDescription.value = pipeline_description screen = avango.gua.nodes.ScreenNode(Name="screen", Width=2, Height=1.5, Children=[cam]) graph.Root.value.Children.value = [transform1, transform2, light, screen] #setup viewer viewer = avango.gua.nodes.Viewer() viewer.SceneGraphs.value = [graph] viewer.Windows.value = [window] monkey_updater = TimedRotate() timer = avango.nodes.TimeSensor() monkey_updater.TimeIn.connect_from(timer.Time) effect_updater.TimeIn.connect_from(timer.Time) transform1.Transform.connect_from(monkey_updater.MatrixOut) guaVE = GuaVE() guaVE.start(locals(), globals()) viewer.run()
def start(): graph = avango.gua.nodes.SceneGraph(Name = "scene") mesh_loader = avango.gua.nodes.TriMeshLoader() #configure lod backend lod_loader = avango.gua.lod.nodes.LodLoader() lod_loader.UploadBudget.value = 64 lod_loader.RenderBudget.value = 2048 lod_loader.OutOfCoreBudget.value = 4096 fallback_mat = avango.gua.create_material(avango.gua.MaterialCapabilities.COLOR_VALUE) plod_node = lod_loader.load_lod_pointcloud( "/opt/3d_models/point_based/plod/pig_pr.bvh", avango.gua.lod.LoaderFlags.NORMALIZE_SCALE | avango.gua.lod.LoaderFlags.NORMALIZE_POSITION ) new_cube = mesh_loader.create_geometry_from_file( "cube", "data/objects/monkey.obj", fallback_mat, avango.gua.LoaderFlags.DEFAULTS ) #plod_node.Material.value.set_uniform("Color", avango.gua.Vec4(1.0, 1.0, 1.0, 1.0)) plod_node.Material.value.set_uniform("Emissivity", 1.0) new_cube.Transform.value = avango.gua.make_trans_mat(-1, 0.3, 0) * \ avango.gua.make_scale_mat(0.3, 0.3, 0.3) plod_node.Transform.value = avango.gua.make_trans_mat(0, 0.3, 0) * \ avango.gua.make_scale_mat(0.3, 0.3, 0.3) graph.Root.value.Children.value.append(plod_node) plod_node.ShadowMode.value = 1 graph.Root.value.Children.value.append(new_cube) new_cube.ShadowMode.value = 1 spot_light_1 = avango.gua.nodes.LightNode(Name = "spot_light_1", Type = avango.gua.LightType.SPOT, Color = avango.gua.Color(1.0, 1.0, 1.0), EnableShadows = True, ShadowMapSize = 1024, ShadowOffset = 0.002, ShadowMaxDistance = 10, Falloff = 1.5, ShadowNearClippingInSunDirection = 0.1, ShadowFarClippingInSunDirection = 10.0, Softness = 2, Brightness = 20) spot_light_1.Transform.value = avango.gua.make_trans_mat(0.0, 3.0, 0.0) * avango.gua.make_rot_mat(-90, 1, 0, 0) * avango.gua.make_scale_mat(4) graph.Root.value.Children.value.append(spot_light_1) point_light1 = avango.gua.nodes.LightNode( Type = avango.gua.LightType.POINT, Name = "point_light1", Color = avango.gua.Color(0.2, 1.0, 1.7), EnableShadows = True, ShadowMapSize = 1024, ShadowMaxDistance = 10, ShadowOffset = 0.03, Falloff = 0.5, ShadowNearClippingInSunDirection = 0.1, ShadowFarClippingInSunDirection = 10.0, Brightness = 20) point_light1.Transform.value = avango.gua.make_trans_mat(1.5, 1.0, 1.5) * avango.gua.make_scale_mat(4) graph.Root.value.Children.value.append(point_light1) sun_light = avango.gua.nodes.LightNode(Name = "sun_light", Type = avango.gua.LightType.SUN, Color = avango.gua.Color(1.0, 1.0, 0.7), EnableShadows = True, ShadowMapSize = 1024, ShadowOffset = 0.0005, ShadowCascadedSplits = [0.1, 4, 7, 20], ShadowMaxDistance = 30, ShadowNearClippingInSunDirection = 100, ShadowFarClippingInSunDirection = 100, Brightness = 2 ) sun_light.Transform.value = avango.gua.make_rot_mat(210, 0, 1, 0) * avango.gua.make_rot_mat(-50.0, 1.0, 0.0, 0.0) #graph.Root.value.Children.value.append(sun_light) floor = mesh_loader.create_geometry_from_file( "floor", "data/objects/plane.obj", avango.gua.LoaderFlags.DEFAULTS ) floor.Transform.value = avango.gua.make_scale_mat(4, 1, 4) * avango.gua.make_trans_mat(0, -0.2, 0) floor.ShadowMode.value = 1 graph.Root.value.Children.value.append(floor) width = 1920; height = int(width * 9.0 / 16.0) size = avango.gua.Vec2ui(width, height) screen = avango.gua.nodes.ScreenNode(Name = "screen", Width = 4.8, Height = 2.7) screen.Transform.value = avango.gua.make_trans_mat(0.0, 0.0, -2.5) camera = avango.gua.nodes.CameraNode( Name = "cam", LeftScreenPath = "/cam/screen", RightScreenPath = "/cam/screen", SceneGraph = "scene", Resolution = size, OutputWindowName = "window", EyeDistance = 0.2, EnableStereo = False, Children = [screen], Transform = avango.gua.make_trans_mat(0.0, 0.0, 2.0) ) res_pass = avango.gua.nodes.ResolvePassDescription() res_pass.EnableSSAO.value = False res_pass.SSAOIntensity.value = 3.0 res_pass.SSAOFalloff.value = 20.0 res_pass.SSAORadius.value = 10.0 res_pass.EnvironmentLightingColor.value = avango.gua.Color(0.1,0.1,0.1) res_pass.ToneMappingMode.value = avango.gua.ToneMappingMode.UNCHARTED res_pass.Exposure.value = 1.0 res_pass.BackgroundMode.value = avango.gua.BackgroundMode.CUBEMAP_TEXTURE res_pass.BackgroundTexture.value = "awesome_skymap" # res_pass.BackgroundColor.value = avango.gua.Color(0.45, 0.5, 0.6) res_pass.VignetteColor.value = avango.gua.Vec4(0, 0, 0, 1) plod_pass = avango.gua.lod.nodes.PLodPassDescription() plod_pass.SurfelRenderMode.value = avango.gua.lod.RenderFlags.HQ_TWO_PASS #plod_pass.SurfelRenderMode.value = avango.gua.lod.RenderFlags.LQ_ONE_PASS pipeline_description = avango.gua.nodes.PipelineDescription( Passes = [ avango.gua.nodes.TriMeshPassDescription(), plod_pass, avango.gua.nodes.SkyMapPassDescription( OutputTextureName="awesome_skymap" ), avango.gua.nodes.LightVisibilityPassDescription(), res_pass, avango.gua.nodes.DebugViewPassDescription() ], EnableABuffer = False ) camera.PipelineDescription.value = pipeline_description graph.Root.value.Children.value.append(camera) window = avango.gua.nodes.Window( Size = size, Title = "shadows", LeftResolution = size, RightResolution = size, EnableVsync = False, StereoMode = avango.gua.StereoMode.MONO ) avango.gua.register_window("window", window) navigator = examples_common.navigator.Navigator() navigator.StartLocation.value = camera.Transform.value.get_translate() navigator.OutTransform.connect_from(camera.Transform) navigator.RotationSpeed.value = 0.2 navigator.MotionSpeed.value = 0.04 camera.Transform.connect_from(navigator.OutTransform) viewer = avango.gua.nodes.Viewer() # viewer.DesiredFPS.value = 200 viewer.SceneGraphs.value = [graph] viewer.Windows.value = [window] timer = avango.nodes.TimeSensor() guaVE = GuaVE() guaVE.start(locals(), globals()) viewer.run()
def start(): # setup scenegraph graph = avango.gua.nodes.SceneGraph(Name="scenegraph") #environment: tri_mesh_loader = avango.gua.nodes.TriMeshLoader() path = "/opt/project_animation/demo/data/objects/cube2.obj" flags = avango.gua.LoaderFlags.NORMALIZE_POSITION \ | avango.gua.LoaderFlags.NORMALIZE_SCALE \ | avango.gua.LoaderFlags.OPTIMIZE_GEOMETRY \ | avango.gua.LoaderFlags.MAKE_PICKABLE \ | avango.gua.LoaderFlags.LOAD_MATERIALS plane = \ tri_mesh_loader.create_geometry_from_file("cube", path, flags) plane.Transform.value *= \ avango.gua.make_scale_mat(10.0, 0.01, 10.0) *\ avango.gua.make_trans_mat(0, -3, 0) path2 = "/opt/project_animation/demo/data/objects/glass_2_3_nm.TGA" plane.Material.value.set_uniform("NormalMap", path2) sunlight = avango.gua.nodes.LightNode( Type=avango.gua.LightType.SUN, Name="light", Color=avango.gua.Color(245.0/255.0, 246.0/255.0, 178.0/255.0), Brightness=5.0, Transform=(avango.gua.make_rot_mat(119.5, 0.0, 1.0, 0.0) * avango.gua.make_rot_mat(-10, 1.0, 0.0, 0.0)) ) #view setup: size = avango.gua.Vec2ui(2560, 1440) window = avango.gua.nodes.GlfwWindow( Size=size, LeftResolution=size ) window.CursorMode.value = 2 window.EnableFullscreen.value = True cam = avango.gua.nodes.CameraNode(LeftScreenPath="/screen", SceneGraph="scenegraph", Resolution=size, OutputWindowName="window") #render pipeline pipeline_description = avango.gua.nodes.PipelineDescription( Passes=[ avango.gua.nodes.TriMeshPassDescription(), avango.gua.nodes.LightVisibilityPassDescription(), avango.gua.skelanim.nodes.SkeletalAnimationPassDescription(), avango.gua.nodes.ResolvePassDescription(), avango.gua.nodes.SSAAPassDescription(), ]) pipeline_description.Passes.value[3].EnableSSAO.value = True pipeline_description.Passes.value[3].SSAORadius.value = 2.0 pipeline_description.Passes.value[3].SSAOIntensity.value = 2.0 pipeline_description.Passes.value[3].BackgroundMode.value = 1 pipeline_description.Passes.value[3].BackgroundTexture.value = \ "../../../examples/shadows/data/textures/skymap.jpg" pipeline_description.Passes.value[3].ToneMappingMode.value = \ avango.gua.ToneMappingMode.LINEAR #pipeline_description.EnableABuffer.value = True cam.PipelineDescription.value = pipeline_description cam.Transform.value = avango.gua.make_trans_mat(0.0, 0.0, 0.4) cam.FarClip.value = 300 cam.NearClip.value = 0.01 screen = avango.gua.nodes.ScreenNode(Name="screen", Width=0.8, Height=0.45) screen.Children.value = [cam] screen.Transform.value = avango.gua.make_trans_mat(0, 0.1, -2) graph.Root.value.Children.value = [screen, plane, sunlight] avango.gua.register_window("window", window) #setup viewer viewer = avango.gua.nodes.Viewer() viewer.SceneGraphs.value = [graph] viewer.Windows.value = [window] window.CursorMode.value = avango.gua.CursorMode.DISABLED #navigation navigator = examples_common.navigator.Navigator() #navigator.StartLocation.value = screen.Transform.value.get_translate() navigator.StartRotation.value = avango.gua.Vec2(0, 790) navigator.OutTransform.connect_from(screen.Transform) navigator.RotationSpeed.value = 0.2 navigator.MotionSpeed.value = 0.004 # enable navigation screen.Transform.connect_from(navigator.OutTransform) #XBOX Controller device_sensor = avango.daemon.nodes.DeviceSensor( DeviceService=avango.daemon.DeviceService()) device_sensor.Station.value = "device-xbox-1" #unreal tournament characters skel_mesh_loader = avango.gua.skelanim.nodes.SkeletalAnimationLoader() #LOOP MODE DEMO BOB path_bob = "/opt/project_animation/Assets/UnrealTournament/Characters/" +\ "Necris_Male/necris_male_ut4_SKELMESH.FBX" flags_bob = avango.gua.LoaderFlags.LOAD_MATERIALS \ | avango.gua.LoaderFlags.NORMALIZE_SCALE bob_loop = \ skel_mesh_loader.create_geometry_from_file("bob_loop", path_bob, flags_bob) bob_loop.Transform.value = avango.gua.make_trans_mat(0.0, -0.01, 0.0) *\ bob_loop.Transform.value *\ avango.gua.make_rot_mat(-90.0, 1.0, 0.0, 0.0) *\ avango.gua.make_scale_mat(0.2, 0.2, 0.2) graph.Root.value.Children.value.append(bob_loop) #load animations path_idle = "/opt/project_animation/Assets/" + \ "UnrealTournament/UniversalAnimations/Idle_Ready_Rif.FBX" path_run = "/opt/project_animation/Assets/" + \ "UnrealTournament/UniversalAnimations/Run_Fwd_Rif.FBX" bob_loop.load_animation(path_idle, "idle") bob_loop.load_animation(path_idle, "idle2") bob_loop.load_animation(path_run, "run_fwd") bob_loop.load_animation(path_run, "run_fwd2") #character control character_control_loop = CharacterControl() character_control_loop.my_constructor(bob_loop, bob_loop, AnimationConfig("idle"), window) character_control_loop.on_animation_end("idle", AnimationConfig("run_fwd", loop=True, speed=1.0, duration=3.0)) character_control_loop.on_animation_end("run_fwd", AnimationConfig("idle2", loop=False, speed=1.0, duration=3.0)) character_control_loop.on_animation_end("idle2", AnimationConfig("run_fwd2", loop=False, speed=1.0, duration=3.0)) character_control_loop.on_animation_end("run_fwd2", AnimationConfig("idle", loop=True, speed=1.0, duration=3.0)) #SPEED DEMO BOB bob_speed = skel_mesh_loader.create_geometry_from_file("bob_speed", path_bob, flags_bob) bob_speed.Transform.value = avango.gua.make_trans_mat(0.1, -0.01, 0.0) * \ bob_speed.Transform.value * \ avango.gua.make_rot_mat(-90.0, 1.0, 0.0, 0.0) * \ avango.gua.make_scale_mat(0.2, 0.2, 0.2) graph.Root.value.Children.value.append(bob_speed) #load animations bob_speed.load_animation(path_idle, "idle") bob_speed.load_animation(path_idle, "idle2") bob_speed.load_animation(path_run, "run_fwd") bob_speed.load_animation(path_run, "run_fwd2") #character control character_control_speed = CharacterControl() character_control_speed.my_constructor(bob_speed, bob_speed, AnimationConfig("idle"), window) character_control_speed.on_animation_end("idle", AnimationConfig("run_fwd", loop=True, speed=1.0, duration=3.0)) character_control_speed.on_animation_end("run_fwd", AnimationConfig("idle2", loop=True, speed=1.5, duration=3.0)) character_control_speed.on_animation_end("idle2", AnimationConfig("run_fwd2", loop=True, speed=1.5, duration=3.0)) character_control_speed.on_animation_end("run_fwd2", AnimationConfig("idle", loop=True, speed=1.0, duration=3.0)) #DURATION DEMO BOB bob_duration = skel_mesh_loader.create_geometry_from_file("bob_duration", path_bob, flags_bob) bob_duration.Transform.value = \ avango.gua.make_trans_mat(0.2, -0.01, 0.0) * \ bob_duration.Transform.value * \ avango.gua.make_rot_mat(-90.0, 1.0, 0.0, 0.0) * \ avango.gua.make_scale_mat(0.2, 0.2, 0.2) graph.Root.value.Children.value.append(bob_duration) #load animations bob_duration.load_animation(path_idle, "idle") bob_duration.load_animation(path_idle, "idle2") bob_duration.load_animation(path_run, "run_fwd") bob_duration.load_animation(path_run, "run_fwd2") #character control character_control_duration = CharacterControl() character_control_duration.my_constructor(bob_duration, bob_duration, AnimationConfig("idle"), window) character_control_duration.on_animation_end("idle", AnimationConfig("run_fwd", loop=True, speed=1.0, duration=1.0)) character_control_duration.on_animation_end("run_fwd", AnimationConfig("idle2", loop=True, speed=1.0, duration=2.0)) character_control_duration.on_animation_end("idle2", AnimationConfig("run_fwd2", loop=True, speed=1.0, duration=2.0)) character_control_duration.on_animation_end("run_fwd2", AnimationConfig("idle", loop=True, speed=1.0, duration=1.0)) #start animation sequence character_control_loop.switch_animation(AnimationConfig("idle", loop=False)) character_control_speed.switch_animation(AnimationConfig("idle", loop=False)) character_control_duration.switch_animation(AnimationConfig("idle", loop=False)) guaVE = GuaVE() guaVE.start(locals(), globals()) viewer.run()
def start(): # setup scenegraph graph = avango.gua.nodes.SceneGraph(Name="scenegraph") loader = avango.gua.nodes.LineStripLoader() line_strip_geode = loader.create_empty_geometry("line_strip_model_1", "empty_name_1.lob") """ line_strip_geode_2 = loader.create_geometry_from_file( "line_strip_model_2", "PATH_TO_ANOMALY_FILE", avango.gua.LoaderFlags.NORMALIZE_SCALE | avango.gua.LoaderFlags.NORMALIZE_POSITION) """ transform1_additional_scale = avango.gua.nodes.TransformNode( Transform=avango.gua.make_scale_mat(0.66), Children=[line_strip_geode]) transform1 = avango.gua.nodes.TransformNode( Children=[transform1_additional_scale]) #line_strip_geode.RenderVolumetric.value = True #line_strip_geode.RenderAsPoints.value = False #only has effect if 'RenderVolumetric' is set to 'False' # the effective range of this parameter is [1.0-10.0] #line_strip_geode.ScreenSpaceLineWidth.value = 10.0 light = avango.gua.nodes.LightNode( Type=avango.gua.LightType.POINT, Name="light", Color=avango.gua.Color(1.0, 1.0, 1.0), Brightness=100.0, Transform=(avango.gua.make_trans_mat(1, 1, 5) * avango.gua.make_scale_mat(30, 30, 30))) size = avango.gua.Vec2ui(1024, 768) window = avango.gua.nodes.GlfwWindow(Size=size, LeftResolution=size) avango.gua.register_window("window", window) cam = avango.gua.nodes.CameraNode(LeftScreenPath="/screen", SceneGraph="scenegraph", Resolution=size, OutputWindowName="window", Transform=avango.gua.make_trans_mat( 0.0, 0.0, 3.5)) res_pass = avango.gua.nodes.ResolvePassDescription() res_pass.EnableSSAO.value = True res_pass.SSAOIntensity.value = 4.0 res_pass.SSAOFalloff.value = 10.0 res_pass.SSAORadius.value = 7.0 #res_pass.EnableScreenSpaceShadow.value = True res_pass.EnvironmentLightingColor.value = avango.gua.Color(0.1, 0.1, 0.1) res_pass.ToneMappingMode.value = avango.gua.ToneMappingMode.UNCHARTED res_pass.Exposure.value = 1.0 res_pass.BackgroundColor.value = avango.gua.Color(0.45, 0.5, 0.6) anti_aliasing = avango.gua.nodes.SSAAPassDescription() pipeline_description = avango.gua.nodes.PipelineDescription(Passes=[ avango.gua.nodes.LineStripPassDescription(), avango.gua.nodes.LightVisibilityPassDescription(), res_pass, anti_aliasing, ]) cam.PipelineDescription.value = pipeline_description screen = avango.gua.nodes.ScreenNode(Name="screen", Width=2, Height=1.5, Children=[cam]) graph.Root.value.Children.value = [transform1, light, screen] #setup viewer viewer = avango.gua.nodes.Viewer() viewer.SceneGraphs.value = [graph] viewer.Windows.value = [window] timer = avango.nodes.TimeSensor() timed_vertex_push_object = TimedVertexPush() timed_vertex_push_object.set_line_strip_nodes(line_strip_geode) guaVE = GuaVE() guaVE.start(locals(), globals()) viewer.run()
def run(self): guaVE = GuaVE() guaVE.start(locals(), globals(), show_banner=False) self.viewer.run()
def start(filename): # setup scenegraph graph = avango.gua.nodes.SceneGraph(Name="scenegraph") loader = avango.gua.nodes.TriMeshLoader() spointsloader = avango.gua.nodes.SPointsLoader() spoints_geode = spointsloader.load("kinect", filename) transform1 = avango.gua.nodes.TransformNode(Children=[spoints_geode]) light = avango.gua.nodes.LightNode( Type=avango.gua.LightType.POINT, Name="light", Color=avango.gua.Color(1.0, 1.0, 1.0), Brightness=100.0, Transform=(avango.gua.make_trans_mat(1, 1, 5) * avango.gua.make_scale_mat(30, 30, 30))) size = avango.gua.Vec2ui(1024, 768) window = avango.gua.nodes.GlfwWindow(Size=size, LeftResolution=size) avango.gua.register_window("window", window) cam = avango.gua.nodes.CameraNode(LeftScreenPath="/screen", SceneGraph="scenegraph", Resolution=size, OutputWindowName="window", Transform=avango.gua.make_trans_mat( 0.0, 0.0, 3.5)) res_pass = avango.gua.nodes.ResolvePassDescription() res_pass.EnableSSAO.value = True res_pass.SSAOIntensity.value = 4.0 res_pass.SSAOFalloff.value = 10.0 res_pass.SSAORadius.value = 7.0 #res_pass.EnableScreenSpaceShadow.value = True res_pass.EnvironmentLightingColor.value = avango.gua.Color(0.1, 0.1, 0.1) res_pass.ToneMappingMode.value = avango.gua.ToneMappingMode.UNCHARTED res_pass.Exposure.value = 1.0 res_pass.BackgroundColor.value = avango.gua.Color(0.45, 0.5, 0.6) anti_aliasing = avango.gua.nodes.SSAAPassDescription() pipeline_description = avango.gua.nodes.PipelineDescription(Passes=[ avango.gua.nodes.TriMeshPassDescription(), avango.gua.nodes.LightVisibilityPassDescription(), avango.gua.nodes.SPointsPassDescription(), res_pass, anti_aliasing, ]) cam.PipelineDescription.value = pipeline_description screen = avango.gua.nodes.ScreenNode(Name="screen", Width=2, Height=1.5, Children=[cam]) graph.Root.value.Children.value = [transform1, light, screen] #setup viewer viewer = avango.gua.nodes.Viewer() viewer.SceneGraphs.value = [graph] viewer.Windows.value = [window] monkey_updater = TimedRotate() timer = avango.nodes.TimeSensor() monkey_updater.TimeIn.connect_from(timer.Time) transform1.Transform.connect_from(monkey_updater.MatrixOut) guaVE = GuaVE() guaVE.start(locals(), globals()) viewer.run()
sphere_geometry = loader.create_geometry_from_file("sphere_geometry", "data/objects/sphere.obj") sphere_geometry.Transform.value = avango.gua.make_scale_mat(0.5, 0.5, 0.5) sphere_geometry.Material.value.set_uniform( #"Color", av.Vec4(0.08, 0.08, 0.09, 1.0)) "Color", av.Vec4(0.9, 0.266, 0.136, 1.0)) sphere_geometry.Material.value.set_uniform("Roughness", 0.75) sphere_geometry.Material.value.set_uniform("Metalness", 0.0) transform1 = avango.gua.nodes.TransformNode(Children=[sphere_geometry]) transform1.Transform.connect_from(sphere_body.Transform) graph.Root.value.Children.value = [ light, screen, floor, sphere_body, transform1 ] timer = avango.nodes.TimeSensor() #setup viewer viewer = av.nodes.Viewer() viewer.Physics.value = physics viewer.SceneGraphs.value = [graph] viewer.Windows.value = [window] guaVE = GuaVE() guaVE.start(locals(), globals()) viewer.run()
def start(scenename, stereo=False): print("loading:", scenename, "Stereo:", stereo) # setup scenegraph graph = avango.gua.nodes.SceneGraph(Name="scenegraph") scene = avango.gua.nodes.TransformNode( Transform=avango.gua.make_identity_mat(), Name="scene" ) starting_pos = scenes.load_scene(scenename, scene) navigation = avango.gua.nodes.TransformNode( Transform=avango.gua.make_trans_mat(starting_pos), Name="navigation" ) loader = avango.gua.nodes.TriMeshLoader() marker = loader.create_geometry_from_file( "marker", "data/objects/sphere.obj", avango.gua.LoaderFlags.NORMALIZE_SCALE ) marker.Material.value.set_uniform("Color", avango.gua.Vec4(1.0, 1.0 ,1.0 ,1.0)) marker.Material.value.set_uniform("Emissivity", 0.3) marker.Tags.value = ["markers"] arrow = loader.create_geometry_from_file( "arrow", "data/objects/arrow.obj", avango.gua.LoaderFlags.DEFAULTS | avango.gua.LoaderFlags.NORMALIZE_SCALE | avango.gua.LoaderFlags.NORMALIZE_POSITION ) arrow.Tags.value = ["markers"] navigation.Children.value.append(arrow) graph.Root.value.Children.value.extend([scene, navigation, marker]) size = avango.gua.Vec2ui(2560, 1440) stereomode = avango.gua.StereoMode.MONO if stereo: stereomode = avango.gua.StereoMode.ANAGLYPH_RED_CYAN window = avango.gua.nodes.GlfwWindow( Size = size, LeftPosition = avango.gua.Vec2ui(0, 0), LeftResolution = size, RightPosition = avango.gua.Vec2ui(0, 0), RightResolution = size, StereoMode = stereomode ) avango.gua.register_window("window", window) cam = avango.gua.nodes.CameraNode( Name = "cam", LeftScreenPath = "/navigation/screen", RightScreenPath = "/navigation/screen", SceneGraph = "scenegraph", Resolution = size, EyeDistance = 0.06, EnableStereo = stereo, OutputWindowName = "window", ViewID = 1, Transform = avango.gua.make_trans_mat(0.0, 0.0, 0.0), # BlackList = ["markers"], ) navigation.Children.value.append(cam) res_pass = avango.gua.nodes.ResolvePassDescription() res_pass.EnableSSAO.value = False res_pass.SSAOIntensity.value = 4.0 res_pass.SSAOFalloff.value = 10.0 res_pass.SSAORadius.value = 7.0 res_pass.EnvironmentLightingColor.value = avango.gua.Color(0.1, 0.1, 0.1) res_pass.ToneMappingMode.value = avango.gua.ToneMappingMode.UNCHARTED res_pass.Exposure.value = 1.0 res_pass.BackgroundMode.value = avango.gua.BackgroundMode.CUBEMAP_TEXTURE if not stereo: res_pass.BackgroundTexture.value = "awesome_skymap" anti_aliasing = avango.gua.nodes.SSAAPassDescription() pipeline_description = avango.gua.nodes.PipelineDescription( Passes=[ avango.gua.nodes.DepthMapPassDescription(), avango.gua.nodes.TriMeshPassDescription(), avango.gua.nodes.BBoxPassDescription(), avango.gua.nodes.SkyMapPassDescription( OutputTextureName="awesome_skymap" ), avango.gua.nodes.PLODPassDescription(), avango.gua.nodes.LightVisibilityPassDescription(), res_pass, anti_aliasing, avango.gua.nodes.TexturedScreenSpaceQuadPassDescription(), ]) cam.PipelineDescription.value = pipeline_description screen = avango.gua.nodes.ScreenNode( Name="screen", Transform=avango.gua.make_trans_mat(0.0, 0.0, -0.45), Width=0.444, Height=0.25, ) navigation.Children.value.append(screen) dcm_transform = avango.gua.make_identity_mat() if stereo: dcm_transform = avango.gua.make_trans_mat(0.0, 0.0, -0.20) distance_cube_map = avango.gua.nodes.DepthMapNode( Name="navigation_depth_cube_map", NearClip=0.0001, FarClip=1000.0, Transform=dcm_transform, Resolution=64, ViewID=2, BlackList=["markers"], ) navigation.Children.value.append(distance_cube_map) distance_cube_map_wrapper = DistanceMapWrapper() distance_cube_map_wrapper.DistanceMapNode.value = distance_cube_map ''' # NOT SUPPORTED BY GUACAMOLE RIGHT NOW -> textured_screen_space_quad.frag has to be adapted debug_quad = avango.gua.nodes.TexturedScreenSpaceQuadNode( Name = "DepthMapDebug", Texture = distance_cube_map.TextureName.value, Width = int(size.x / 2), Height = int(size.x / 12), Anchor = avango.gua.Vec2(-1.0, -1.0) ) graph.Root.value.Children.value.append(debug_quad) ''' navi = navigator.MulitScaleNavigator( EnableEvasion=True, EnableAdaptiveMotionSpeed=True, RotationSpeed=0.3, MaxMotionSpeed=300.0, MaxDistance=300.0, ) navi.StartLocation.value = navigation.Transform.value.get_translate() navi.OutTransform.connect_from(navigation.Transform) navi.MinDistance.connect_from(distance_cube_map_wrapper.MinDistance) navi.MinDistancePos.connect_from(distance_cube_map_wrapper.MinDistancePos) navigation.Transform.connect_from(navi.OutTransform) # MarkerUpdate marker_updater = MarkerUpdater() marker_updater.MinDistance.connect_from(distance_cube_map_wrapper.MinDistance) marker_updater.MinDistancePos.connect_from(distance_cube_map_wrapper.MinDistancePos) marker_smoother = TransformSmoother(Smoothness=0.2) marker_smoother.InTransform.connect_from(marker_updater.OutTransform) marker.Transform.connect_from(marker_smoother.OutTransform) # ArrowUpdate arrow_updater = ArrowUpdater() arrow_updater.MinDistance.connect_from(distance_cube_map_wrapper.MinDistance) arrow_updater.MinDistancePos.connect_from(distance_cube_map_wrapper.MinDistancePos) arrow_updater.NavigationTransformIn.connect_from(navigation.Transform) arrow_updater.EvasionInfo.connect_from(navi.EvasionInfo) arrow_smoother = TransformSmoother(Smoothness=0.2) arrow_smoother.InTransform.connect_from(arrow_updater.OutTransform) arrow.Transform.connect_from(arrow_smoother.OutTransform) arrow.Material.connect_from(arrow_updater.OutMaterial) #Clipping update clip_updater = ClippingUpdater( Near=0.0001, # Far=100.0, ) clip_updater.MinDistance.connect_from(distance_cube_map_wrapper.MinDistance) cam.NearClip.connect_from(clip_updater.Near) cam.FarClip.connect_from(clip_updater.Far) # distance_cube_map.NearClip.connect_from(clip_updater.Near) # distance_cube_map.FarClip.connect_from(clip_updater.Far) arrow_updater.NearClip.connect_from(clip_updater.Near) #setup viewer viewer = avango.gua.nodes.Viewer() viewer.SceneGraphs.value = [graph] viewer.Windows.value = [window] # def toogle_adaptive_locomotion(): guaVE = GuaVE() guaVE.start(locals(), globals()) viewer.run()
def start(): graph = avango.gua.nodes.SceneGraph(Name="scene") loader = avango.gua.nodes.TriMeshLoader() for x in range(0, CUBE_COUNT_X): for y in range(0, CUBE_COUNT_Y): for z in range(0, CUBE_COUNT_Z): new_cube = loader.create_geometry_from_file( "cube" + str(x) + str(y) + str(z), "data/objects/sphere.obj", avango.gua.LoaderFlags.DEFAULTS | avango.gua.LoaderFlags.MAKE_PICKABLE) new_cube.Transform.value = avango.gua.make_trans_mat(x, y, z) * \ avango.gua.make_scale_mat(0.3, 0.3, 0.3) graph.Root.value.Children.value.append(new_cube) light = avango.gua.nodes.LightNode(Type=avango.gua.LightType.POINT, Name="sun", Color=avango.gua.Color(1.0, 1.0, 0.7), Brightness=10) light.Transform.value = avango.gua.make_trans_mat((CUBE_COUNT_X - 1.0) * 0.5, (CUBE_COUNT_Y - 1.0) * 0.5, (CUBE_COUNT_Z - 1.0) * 0.5) * \ avango.gua.make_scale_mat(100) pick_ray = avango.gua.nodes.RayNode(Name="pick_ray") pick_ray.Transform.value = avango.gua.make_trans_mat(0.0, -1.0, 0.0) * \ avango.gua.make_scale_mat(1.0, 1.0, 50.0) ray_geom = loader.create_geometry_from_file( "ray_geom", "data/objects/cylinder.obj", avango.gua.LoaderFlags.DEFAULTS) ray_geom.Transform.value = avango.gua.make_scale_mat(0.1, 0.1, 100) pick_ray.Children.value.append(ray_geom) screen = avango.gua.nodes.ScreenNode(Name="screen", Width=4.8, Height=2.7) screen.Transform.value = avango.gua.make_trans_mat(0.0, 0.0, -2.5) graph.Root.value.Children.value.append(light) picker = Picker() picker.SceneGraph.value = graph picker.Ray.value = pick_ray material_updater = MaterialUpdater() material_updater.PickedNodes.connect_from(picker.Results) width = 1920 height = int(width * 9.0 / 16.0) size = avango.gua.Vec2ui(width, height) camera = avango.gua.nodes.CameraNode(Name="cam", LeftScreenPath="/cam/screen", SceneGraph="scene", Resolution=size, OutputWindowName="window", Children=[screen, pick_ray], Transform=avango.gua.make_trans_mat( 0.0, 0.0, 7.0)) camera.PipelineDescription.value.EnableABuffer.value = True graph.Root.value.Children.value.append(camera) window = avango.gua.nodes.Window(Size=size, Title="picking", LeftResolution=size) avango.gua.register_window("window", window) navigator = examples_common.navigator.Navigator() navigator.StartLocation.value = camera.Transform.value.get_translate() navigator.OutTransform.connect_from(camera.Transform) navigator.RotationSpeed.value = 0.2 navigator.MotionSpeed.value = 0.04 camera.Transform.connect_from(navigator.OutTransform) viewer = avango.gua.nodes.Viewer() viewer.SceneGraphs.value = [graph] viewer.Windows.value = [window] guaVE = GuaVE() guaVE.start(locals(), globals()) viewer.run()
def start(): # setup scenegraph graph = avango.gua.nodes.SceneGraph(Name="scenegraph") loader = avango.gua.nodes.TriMeshLoader() monkey = loader.create_geometry_from_file("monkey", "data/objects/monkey.obj", "data/materials/Stones.gmd", avango.gua.LoaderFlags.DEFAULTS) light = avango.gua.nodes.PointLightNode(Name="light", Color=avango.gua.Color( 1.0, 1.0, 1.0)) light.Transform.value = avango.gua.make_trans_mat( 1, 1, 2) * avango.gua.make_scale_mat(15, 15, 15) left_eye = avango.gua.nodes.TransformNode(Name="left_eye") left_eye.Transform.value = avango.gua.make_trans_mat(-0.1, 0.0, 0.0) right_eye = avango.gua.nodes.TransformNode(Name="right_eye") right_eye.Transform.value = avango.gua.make_trans_mat(0.1, 0.0, 0.0) head = avango.gua.nodes.TransformNode(Name="head") head.Transform.value = avango.gua.make_trans_mat(0.0, 0.0, 3.5) head.Children.value = [left_eye, right_eye] screen = avango.gua.nodes.ScreenNode(Name="screen", Width=4, Height=3) screen.Children.value = [head] graph.Root.value.Children.value = [monkey, light, screen] # setup viewing width = 1024 height = 768 eye_size = avango.gua.Vec2ui(width, height) window_size = avango.gua.Vec2ui(width, height) left_pos = avango.gua.Vec2ui(0, 0) right_pos = avango.gua.Vec2ui(0, 0) if STEREO_MODE == avango.gua.StereoMode.SIDE_BY_SIDE: right_pos.x = width + 1 window_size.x *= 2 pipe = avango.gua.nodes.Pipeline( Camera=avango.gua.nodes.Camera(LeftEye="/screen/head/left_eye", RightEye="/screen/head/right_eye", LeftScreen="/screen", RightScreen="/screen", SceneGraph="scenegraph"), Window=avango.gua.nodes.Window(Size=window_size, LeftPosition=left_pos, LeftResolution=eye_size, RightPosition=right_pos, RightResolution=eye_size, StereoMode=STEREO_MODE), LeftResolution=eye_size, RightResolution=eye_size, EnableStereo=True) #setup viewer viewer = avango.gua.nodes.Viewer() viewer.Pipelines.value = [pipe] viewer.SceneGraphs.value = [graph] monkey_updater = TimedRotate() timer = avango.nodes.TimeSensor() monkey_updater.TimeIn.connect_from(timer.Time) monkey.Transform.connect_from(monkey_updater.MatrixOut) guaVE = GuaVE() guaVE.start(locals(), globals()) viewer.run()
def start(): physics = avango.gua.nodes.Physics() avango.gua.create_sphere_shape("sphere", 0.1) # setup scenegraph graph = avango.gua.nodes.SceneGraph(Name = "scenegraph") teapot_rb = avango.gua.nodes.RigidBodyNode( Name = "teapot_rb", Mass = 0.0 ) physics.add_rigid_body(teapot_rb) teapot_cs = avango.gua.create_triangle_mesh_shape_from_geometry_file( "teapot_cs", "data/objects/teapot.obj", True, False, avango.gua.LoaderFlags.DEFAULTS ) teapot_cs.Scaling.value = avango.gua.Vec3(0.5, 0.5, 0.5) teapot_csn = avango.gua.nodes.CollisionShapeNode( Name = "teapot_csn", ShapeName = "teapot_cs" ) loader = avango.gua.nodes.TriMeshLoader() teapot_geometry = loader.create_geometry_from_file( "teapot_geometry", "data/objects/teapot.obj", avango.gua.LoaderFlags.OPTIMIZE_GEOMETRY ) teapot_geometry.Material.value.set_uniform("Color", avango.gua.Vec4(1.0, 0.766, 0.336, 1.0)) teapot_geometry.Material.value.set_uniform("Roughness", 0.3) teapot_geometry.Material.value.set_uniform("Metalness", 1.0) teapot_geometry.Transform.value = avango.gua.make_scale_mat(0.5, 0.5, 0.5) teapot_csn.Children.value.append(teapot_geometry) teapot_rb.Children.value.append(teapot_csn) light = avango.gua.nodes.LightNode( Type=avango.gua.LightType.POINT, Name = "light", Color = avango.gua.Color(1.0, 1.0, 1.0), Brightness = 50.0, Transform = avango.gua.make_trans_mat(2, 1, 3) * avango.gua.make_scale_mat(5, 5, 5) ) size = avango.gua.Vec2ui(1920, 1080) window = avango.gua.nodes.GlfwWindow( Size = size, LeftResolution = size ) avango.gua.register_window("window", window) cam = avango.gua.nodes.CameraNode( Transform = avango.gua.make_trans_mat(0.0, 0.0, 1.5), LeftScreenPath = "/screen", SceneGraph = "scenegraph", Resolution = size, OutputWindowName = "window" ) screen = avango.gua.nodes.ScreenNode( Name = "screen", Width = 1.6, Height = 0.9, Transform = avango.gua.make_trans_mat(0.0, 0.5, 2.0), Children = [cam] ) graph.Root.value.Children.value = [teapot_rb, light, screen] #setup viewer viewer = avango.gua.nodes.Viewer() viewer.SceneGraphs.value = [graph] viewer.Physics.value = physics viewer.Windows.value = [window] timer = avango.nodes.TimeSensor() spawner = BallSpawner() spawner.TimeIn.connect_from(timer.Time) spawner.SceneGraph.value = graph spawner.Physics.value = physics guaVE = GuaVE() guaVE.start(locals(), globals()) viewer.run()
def start(filename): # setup scenegraph graph = avango.gua.nodes.SceneGraph(Name = "scenegraph") loader = avango.gua.nodes.TriMeshLoader() monkey = loader.create_geometry_from_file("monkey", "/mnt/data_internal/geometry_data/confidential/Kaisersaal/Ktris_15000/Bam_Kai_o_L_12_ct_1-5.obj", avango.gua.LoaderFlags.DEFAULTS | avango.gua.LoaderFlags.LOAD_MATERIALS) monkey.Transform.value = avango.gua.make_rot_mat(-90.0, 1.0, 0.0, 0.0) spointsloader = avango.gua.nodes.SPointsLoader() spoints_geode = spointsloader.load("kinect", filename) spoints_geode.Transform.value = avango.gua.make_rot_mat(180.0, 0.0, 1.0, 0.0) light = avango.gua.nodes.LightNode( Type=avango.gua.LightType.POINT, Name = "light", Color = avango.gua.Color(1.0, 1.0, 1.0), Brightness = 300 ) light.Transform.value = avango.gua.make_trans_mat(1, 2, 2) * avango.gua.make_scale_mat(15, 15, 15) # setup viewing width = 1080 #1024 height = 1200 #768 eye_size = avango.gua.Vec2ui(width, height) window_size = avango.gua.Vec2ui(width, height) left_pos = avango.gua.Vec2ui(0, 0) right_pos = avango.gua.Vec2ui(0, 0) if STEREO_MODE == avango.gua.StereoMode.SIDE_BY_SIDE: right_pos.x = width + 1 window_size.x *= 2 window_left = avango.gua.nodes.Window( Size = window_size, Display = ":0.0", #SwapGroup = 1, #SwapBarrier = 1, LeftPosition = left_pos, LeftResolution = eye_size, RightPosition = right_pos, RightResolution = eye_size, StereoMode = STEREO_MODE) window_left.EnableVsync.value = False avango.gua.register_window("window_left", window_left) #window_right = avango.gua.nodes.Window( # Size = window_size, # Display = ":0.0", # ":0.1", #SwapGroup = 1, #SwapBarrier = 1, # LeftPosition = left_pos, # LeftResolution = eye_size, # RightPosition = right_pos, # RightResolution = eye_size, # StereoMode = STEREO_MODE) #window_right.EnableVsync.value = False #avango.gua.register_window("window_right", window_right) cam = avango.gua.nodes.CameraNode( Name = "cam", LeftScreenPath = "/screen", RightScreenPath = "/screen", SceneGraph = "scenegraph", Resolution = eye_size, EyeDistance = 0.06, EnableStereo = True, LeftOutputWindow = "window_left", Transform = avango.gua.make_trans_mat(0.0, 0.0, 0.5) # NearClip = ) res_pass = avango.gua.nodes.ResolvePassDescription() res_pass.EnableSSAO.value = True res_pass.SSAOIntensity.value = 4.0 res_pass.SSAOFalloff.value = 10.0 res_pass.SSAORadius.value = 7.0 #res_pass.EnableScreenSpaceShadow.value = True res_pass.EnvironmentLightingColor.value = avango.gua.Color(0.1, 0.1, 0.1) res_pass.ToneMappingMode.value = avango.gua.ToneMappingMode.UNCHARTED res_pass.Exposure.value = 1.0 res_pass.BackgroundColor.value = avango.gua.Color(0.45, 0.5, 0.6) anti_aliasing = avango.gua.nodes.SSAAPassDescription() pipeline_description = avango.gua.nodes.PipelineDescription( Passes=[ avango.gua.nodes.TriMeshPassDescription(), avango.gua.nodes.LightVisibilityPassDescription(), avango.gua.nodes.SPointsPassDescription(), res_pass, anti_aliasing, ]) cam.PipelineDescription.value = pipeline_description #cam.Transform.value = avango.gua.make_trans_mat(0.0, 0.0, 0.0) screen = avango.gua.nodes.ScreenNode(Name = "screen", Width = 0.255, Height = 0.285) screen.Transform.value = avango.gua.make_trans_mat(0.0, 1.0, 2.5) screen.Children.value = [cam] navigator = examples_common.navigator.Navigator() navigator.StartLocation.value = screen.Transform.value.get_translate() navigator.OutTransform.connect_from(screen.Transform) navigator.RotationSpeed.value = 0.12/3.0 navigator.MotionSpeed.value = 0.07 screen.Transform.connect_from(navigator.OutTransform) graph.Root.value.Children.value = [monkey, spoints_geode, light, screen] #graph.Root.value.Children.value = [ spoints_geode, light, screen] #setup viewer viewer = avango.gua.nodes.Viewer() viewer.SceneGraphs.value = [graph] viewer.Windows.value = [window_left]#, window_right] viewer.DesiredFPS.value = 500.0 monkey_updater = TimedRotate() timer = avango.nodes.TimeSensor() monkey_updater.TimeIn.connect_from(timer.Time) spoints_geode.Transform.connect_from(monkey_updater.MatrixOut) monkey_updater.set_left_window(window_left) #monkey_updater.set_right_window(window_right) guaVE = GuaVE() guaVE.start(locals(), globals()) viewer.run()
def start(): # setup scenegraph graph = avango.gua.nodes.SceneGraph(Name="scenegraph") loader = avango.gua.nodes.TriMeshLoader() monkey = loader.create_geometry_from_file( "monkey", "data/objects/monkey.obj", avango.gua.LoaderFlags.NORMALIZE_SCALE) monkey.Material.value.set_uniform( "Color", avango.gua.Vec4(1.0, 0.766, 0.336, 1.0)) monkey.Material.value.set_uniform("Roughness", 0.3) monkey.Material.value.set_uniform("Metalness", 1.0) transform = avango.gua.nodes.TransformNode( Children=[monkey] ) light = avango.gua.nodes.LightNode( Type=avango.gua.LightType.POINT, Name="light", Color=avango.gua.Color(1.0, 1.0, 1.0), Brightness=100.0, Transform=(avango.gua.make_trans_mat(1, 1, 5) * avango.gua.make_scale_mat(30, 30, 30)) ) size = avango.gua.Vec2ui(1024, 768) window = avango.gua.nodes.GlfwWindow( Size=size, LeftResolution=size ) avango.gua.register_window("window", window) cam = avango.gua.nodes.CameraNode( LeftScreenPath="/screen", SceneGraph="scenegraph", Resolution=size, OutputWindowName="window", Transform=avango.gua.make_trans_mat(0.0, 0.0, 3.5) ) res_pass = avango.gua.nodes.ResolvePassDescription() res_pass.EnableSSAO.value = True res_pass.SSAOIntensity.value = 4.0 res_pass.SSAOFalloff.value = 10.0 res_pass.SSAORadius.value = 7.0 #res_pass.EnableScreenSpaceShadow.value = True res_pass.EnvironmentLightingColor.value = avango.gua.Color(0.1, 0.1, 0.1) res_pass.ToneMappingMode.value = avango.gua.ToneMappingMode.UNCHARTED res_pass.Exposure.value = 1.0 res_pass.BackgroundColor.value = avango.gua.Color(0.45, 0.5, 0.6) anti_aliasing = avango.gua.nodes.SSAAPassDescription() pipeline_description = avango.gua.nodes.PipelineDescription( Passes=[ avango.gua.nodes.TriMeshPassDescription(), avango.gua.nodes.LightVisibilityPassDescription(), res_pass, anti_aliasing, ]) cam.PipelineDescription.value = pipeline_description screen = avango.gua.nodes.ScreenNode( Name="screen", Width=2, Height=1.5, Children=[cam] ) graph.Root.value.Children.value = [transform, light, screen] #setup viewer viewer = avango.gua.nodes.Viewer() viewer.SceneGraphs.value = [graph] viewer.Windows.value = [window] # make monkey look at the mouse cursor mouse_move = MouseMove() mouse_move.Resolution.connect_from(window.LeftResolution) window.on_move_cursor(mouse_move.on_move_cursor) transform.Transform.connect_from(mouse_move.MatrixOut) guaVE = GuaVE() guaVE.start(locals(), globals()) viewer.run()
def start(): # device sensor listening to the daemon values device = avango.daemon.nodes.DeviceSensor( DeviceService=avango.daemon.DeviceService()) # station name determines which device is used device.Station.value = "kinect-head-0" # 0 for first xbox controller # setup scenegraph graph = avango.gua.nodes.SceneGraph(Name="scenegraph") loader = avango.gua.nodes.TriMeshLoader() monkey = loader.create_geometry_from_file( "monkey", "data/objects/monkey.obj", avango.gua.LoaderFlags.NORMALIZE_SCALE) monkey.Material.value.set_uniform("Color", avango.gua.Vec4(1.0, 0.766, 0.336, 1.0)) monkey.Material.value.set_uniform("Roughness", 0.3) monkey.Material.value.set_uniform("Metalness", 1.0) transform = avango.gua.nodes.TransformNode(Children=[monkey]) transform.Transform.connect_from(device.Matrix) light = avango.gua.nodes.LightNode( Type=avango.gua.LightType.POINT, Name="light", Color=avango.gua.Color(1.0, 1.0, 1.0), Brightness=100.0, Transform=(avango.gua.make_trans_mat(1, 1, 5) * avango.gua.make_scale_mat(30, 30, 30))) size = avango.gua.Vec2ui(1024, 768) window = avango.gua.nodes.GlfwWindow(Size=size, LeftResolution=size) avango.gua.register_window("window", window) cam = avango.gua.nodes.CameraNode(LeftScreenPath="/screen", SceneGraph="scenegraph", Resolution=size, OutputWindowName="window", Transform=avango.gua.make_trans_mat( 0.0, 0.0, 3.5)) res_pass = avango.gua.nodes.ResolvePassDescription() res_pass.EnableSSAO.value = True res_pass.SSAOIntensity.value = 4.0 res_pass.SSAOFalloff.value = 10.0 res_pass.SSAORadius.value = 7.0 res_pass.EnvironmentLightingColor.value = avango.gua.Color(0.1, 0.1, 0.1) res_pass.ToneMappingMode.value = avango.gua.ToneMappingMode.UNCHARTED res_pass.Exposure.value = 1.0 res_pass.BackgroundColor.value = avango.gua.Color(0.45, 0.5, 0.6) anti_aliasing = avango.gua.nodes.SSAAPassDescription() pipeline_description = avango.gua.nodes.PipelineDescription(Passes=[ avango.gua.nodes.TriMeshPassDescription(), avango.gua.nodes.LightVisibilityPassDescription(), res_pass, anti_aliasing, ]) cam.PipelineDescription.value = pipeline_description screen = avango.gua.nodes.ScreenNode(Name="screen", Width=2, Height=1.5, Children=[cam]) graph.Root.value.Children.value = [transform, light, screen] viewer = avango.gua.nodes.Viewer() viewer.SceneGraphs.value = [graph] viewer.Windows.value = [window] guaVE = GuaVE() guaVE.start(locals(), globals()) viewer.run()
def start(): # setup scenegraph graph = avango.gua.nodes.SceneGraph(Name = "scenegraph") loader = avango.gua.nodes.TriMeshLoader() projector = Projector() projector.Graph.value = graph projector.Texture.value = "data/textures/smiley.jpg" monkey = loader.create_geometry_from_file("monkey", "data/objects/monkey.obj", avango.gua.LoaderFlags.NORMALIZE_SCALE) monkey.Material.connect_from(projector.Material) light = avango.gua.nodes.LightNode( Type=avango.gua.LightType.POINT, Name = "light", Color = avango.gua.Color(1.0, 1.0, 1.0), Brightness = 50.0, Transform = avango.gua.make_trans_mat(1, 1, 5) * avango.gua.make_scale_mat(15, 15, 15) ) size = avango.gua.Vec2ui(1024, 768) window = avango.gua.nodes.GlfwWindow( Size = size, LeftResolution = size ) avango.gua.register_window("window", window) cam = avango.gua.nodes.CameraNode( LeftScreenPath = "/screen", SceneGraph = "scenegraph", Resolution = size, OutputWindowName = "window", Transform = avango.gua.make_trans_mat(0.0, 0.0, 3.5) ) pipeline_description = avango.gua.nodes.PipelineDescription( Passes = [ avango.gua.nodes.TriMeshPassDescription(), avango.gua.nodes.LightVisibilityPassDescription(), avango.gua.nodes.ResolvePassDescription() ]) cam.PipelineDescription.value = pipeline_description screen = avango.gua.nodes.ScreenNode( Name = "screen", Width = 2, Height = 1.5, Children = [cam] ) graph.Root.value.Children.value = [monkey, light, screen, projector.group_node] #setup viewer viewer = avango.gua.nodes.Viewer() viewer.SceneGraphs.value = [graph] viewer.Windows.value = [window] #monkey rotation monkey_updater = TimedRotate() timer = avango.nodes.TimeSensor() monkey_updater.TimeIn.connect_from(timer.Time) monkey.Transform.connect_from(monkey_updater.MatrixOut) # projector movement navigator = Navigator() navigator.OutTransform.value = avango.gua.make_identity_mat() navigator.StartLocation.value = avango.gua.Vec3(0.0, 0.0, 1.0) navigator.RotationSpeed.value = 0.2 navigator.MotionSpeed.value = 0.04 projector.Transform.connect_from(navigator.OutTransform) guaVE = GuaVE() guaVE.start(locals(), globals()) viewer.run()
def start(): graph = avango.gua.nodes.SceneGraph(Name="scene") loader = avango.gua.nodes.TriMeshLoader() fps_size = avango.gua.Vec2(170, 55) fps = avango.gua.gui.nodes.GuiResourceNode() fps.TextureName.value = "fps" fps.URL.value = "asset://gua/data/html/fps.html" fps.Size.value = fps_size fps_quad = avango.gua.nodes.TexturedScreenSpaceQuadNode( Name="fps_quad", Texture="fps", Width=int(fps_size.x), Height=int(fps_size.y), Anchor=avango.gua.Vec2(1.0, 1.0)) graph.Root.value.Children.value.append(fps_quad) fallback_mat = avango.gua.create_material( avango.gua.MaterialCapabilities.COLOR_VALUE) for x in range(0, CUBE_COUNT_X): for y in range(0, CUBE_COUNT_Y): for z in range(0, CUBE_COUNT_Z): new_cube = loader.create_geometry_from_file( "cube" + str(x) + str(y) + str(z), "data/objects/monkey.obj", fallback_mat, avango.gua.LoaderFlags.DEFAULTS) # new_cube.Material.value.set_uniform("Color", avango.gua.Vec4(1, 1, 1, 0.6)) new_cube.Transform.value = avango.gua.make_trans_mat(x*2, y*2, z*2) * \ avango.gua.make_scale_mat(0.3, 0.3, 0.3) graph.Root.value.Children.value.append(new_cube) new_cube.ShadowMode.value = 1 spot_light_1 = avango.gua.nodes.LightNode(Name="spot_light_1", Type=avango.gua.LightType.SPOT, Color=avango.gua.Color( 1.0, 0.0, 0.7), EnableShadows=True, ShadowMapSize=512, ShadowOffset=0.002, ShadowMaxDistance=10, Falloff=1.5, Softness=2, Brightness=10) spot_light_1.Transform.value = avango.gua.make_trans_mat( 14.0, 3.0, 18.0) * avango.gua.make_rot_mat( -20, 1, 0, 0) * avango.gua.make_scale_mat(20) graph.Root.value.Children.value.append(spot_light_1) point_light1 = avango.gua.nodes.LightNode(Type=avango.gua.LightType.POINT, Name="point_light1", Color=avango.gua.Color( 0.2, 1.0, 1.7), EnableShadows=True, ShadowMapSize=128, ShadowMaxDistance=10, ShadowOffset=0.03, Falloff=0.5, Brightness=20) point_light1.Transform.value = avango.gua.make_trans_mat( 4.5, 1.0, 4.5) * avango.gua.make_scale_mat(4) graph.Root.value.Children.value.append(point_light1) sun_light = avango.gua.nodes.LightNode( Name="sun_light", Type=avango.gua.LightType.SUN, Color=avango.gua.Color(1.0, 1.0, 0.7), EnableShadows=True, ShadowMapSize=1024, ShadowOffset=0.0005, ShadowCascadedSplits=[0.1, 4, 7, 20], ShadowMaxDistance=30, ShadowNearClippingInSunDirection=100, ShadowFarClippingInSunDirection=100, Brightness=2) sun_light.Transform.value = avango.gua.make_rot_mat( 210, 0, 1, 0) * avango.gua.make_rot_mat(-50.0, 1.0, 0.0, 0.0) graph.Root.value.Children.value.append(sun_light) floor = loader.create_geometry_from_file("floor", "data/objects/plane.obj", avango.gua.LoaderFlags.DEFAULTS) floor.Transform.value = avango.gua.make_scale_mat( 20, 1, 20) * avango.gua.make_trans_mat(1, -0.2, 1) floor.ShadowMode.value = 0 graph.Root.value.Children.value.append(floor) width = 1920 height = int(width * 9.0 / 16.0) size = avango.gua.Vec2ui(width, height) screen = avango.gua.nodes.ScreenNode(Name="screen", Width=4.8, Height=2.7) screen.Transform.value = avango.gua.make_trans_mat(0.0, 0.0, -2.5) camera = avango.gua.nodes.CameraNode(Name="cam", LeftScreenPath="/cam/screen", RightScreenPath="/cam/screen", SceneGraph="scene", Resolution=size, OutputWindowName="window", EyeDistance=0.2, EnableStereo=False, Children=[screen], Transform=avango.gua.make_trans_mat( 0.0, 0.0, 7.0)) res_pass = avango.gua.nodes.ResolvePassDescription() res_pass.EnableSSAO.value = True res_pass.SSAOIntensity.value = 3.0 res_pass.SSAOFalloff.value = 20.0 res_pass.SSAORadius.value = 10.0 res_pass.EnvironmentLightingColor.value = avango.gua.Color(0.1, 0.1, 0.1) res_pass.ToneMappingMode.value = avango.gua.ToneMappingMode.UNCHARTED res_pass.Exposure.value = 1.0 res_pass.BackgroundMode.value = avango.gua.BackgroundMode.CUBEMAP_TEXTURE res_pass.BackgroundTexture.value = "awesome_skymap" # res_pass.BackgroundColor.value = avango.gua.Color(0.45, 0.5, 0.6) res_pass.VignetteColor.value = avango.gua.Vec4(0, 0, 0, 1) pipeline_description = avango.gua.nodes.PipelineDescription( Passes=[ avango.gua.nodes.TriMeshPassDescription(), avango.gua.nodes.SkyMapPassDescription( OutputTextureName="awesome_skymap"), avango.gua.nodes.LightVisibilityPassDescription(), res_pass, avango.gua.nodes.BBoxPassDescription(), avango.gua.nodes.TexturedScreenSpaceQuadPassDescription() # avango.gua.nodes.DebugViewPassDescription() ], EnableABuffer=False) camera.PipelineDescription.value = pipeline_description graph.Root.value.Children.value.append(camera) window = avango.gua.nodes.Window(Size=size, Title="shadows", LeftResolution=size, RightResolution=size, EnableVsync=False, StereoMode=avango.gua.StereoMode.MONO) avango.gua.register_window("window", window) navigator = examples_common.navigator.Navigator() navigator.StartLocation.value = camera.Transform.value.get_translate() navigator.OutTransform.connect_from(camera.Transform) navigator.RotationSpeed.value = 0.2 navigator.MotionSpeed.value = 0.04 camera.Transform.connect_from(navigator.OutTransform) viewer = avango.gua.nodes.Viewer() # viewer.DesiredFPS.value = 200 viewer.SceneGraphs.value = [graph] viewer.Windows.value = [window] timer = avango.nodes.TimeSensor() fps_updater = FPSUpdater(FPSResource=fps, Window=window, Viewer=viewer) fps_updater.TimeIn.connect_from(timer.Time) guaVE = GuaVE() guaVE.start(locals(), globals()) viewer.run()
def start(): graph = avango.gua.nodes.SceneGraph(Name="big_scenegraph") loader = avango.gua.nodes.TriMeshLoader() root_node = avango.gua.nodes.TransformNode( Name="Root", Transform=avango.gua.make_scale_mat(0.5, 0.5, 0.5) ) root_monkey = loader.create_geometry_from_file( "root_ape", "data/objects/monkey.obj", get_random_material() ) root_node.Children.value = [root_monkey] graph.Root.value.Children.value.append(root_node) monkey_updater = TimedRotate() timer = avango.nodes.TimeSensor() monkey_updater.TimeIn.connect_from(timer.Time) root_monkey.Transform.connect_from(monkey_updater.MatrixOut) add_lights(graph, 40) setup_scene(graph, root_monkey, 4) size = avango.gua.Vec2ui(1500, int(1500*9/16)) camera = avango.gua.nodes.CameraNode( LeftScreenPath="/screen", SceneGraph="big_scenegraph", Resolution=size, OutputWindowName="window", Transform=avango.gua.make_trans_mat(0.0, 0.0, 2.5) ) screen = avango.gua.nodes.ScreenNode( Name="screen", Width=1.6, Height=0.9, Children=[camera], Transform=avango.gua.make_trans_mat(0.0, 0.0, 0.5) ) graph.Root.value.Children.value.append(screen) window = avango.gua.nodes.Window( Size=size, LeftResolution=size ) avango.gua.register_window("window", window) guaVE = GuaVE() guaVE.start(locals(), globals()) viewer = avango.gua.nodes.Viewer() viewer.SceneGraphs.value = [graph] viewer.Windows.value = [window] viewer.run()
LeftScreen = "/sound/screen", RightScreen = "/sound/screen", SceneGraph = "scenegraph"), Window = avango.gua.nodes.Window(Size = size, LeftResolution = size), LeftResolution = size, BackgroundMode = avango.gua.BackgroundMode.COLOR ) pipe.Enabled.value = True #setup viewer viewer = avango.gua.nodes.Viewer() viewer.Pipelines.value = [pipe] viewer.SceneGraphs.value = [graph] soundtraverser.RootNode.value = root_group soundtraverser.Traverse.value = True openal_renderer.ListenerPosition.connect_from(eye.Transform) stereosound.Play.value = True monosound.Play.value = True #viewer.frame() guaVE = GuaVE() guaVE.start(locals(), globals()) viewer.run()
def start(): avango.gua.load_material("data/materials/Bright.gmd") graph = avango.gua.nodes.SceneGraph(Name = "scene") loader = avango.gua.nodes.TriMeshLoader() for x in range(0, CUBE_COUNT_X): for y in range(0, CUBE_COUNT_Y): for z in range(0, CUBE_COUNT_Z): new_cube = loader.create_geometry_from_file("cube" + str(x) + str(y) + str(z), "data/objects/sphere.obj", "data/materials/Stone.gmd", avango.gua.LoaderFlags.DEFAULTS | avango.gua.LoaderFlags.MAKE_PICKABLE) new_cube.Transform.value = avango.gua.make_trans_mat(x, y, z) * \ avango.gua.make_scale_mat(0.3, 0.3, 0.3) graph.Root.value.Children.value.append(new_cube) light = avango.gua.nodes.SunLightNode( Name = "sun", Color = avango.gua.Color(1.0, 1.0, 0.7), EnableGodrays = True ) light.Transform.value = avango.gua.make_rot_mat(120, 0, 1, 0) * avango.gua.make_rot_mat(-20.0, 1.0, 1.0, 0.0) pick_ray = avango.gua.nodes.RayNode(Name = "pick_ray") pick_ray.Transform.value = avango.gua.make_trans_mat(0.0, -1.0, 0.0) * \ avango.gua.make_scale_mat(1.0, 1.0, 50.0) screen = avango.gua.nodes.ScreenNode(Name = "screen", Width = 4.8, Height = 2.7) screen.Transform.value = avango.gua.make_trans_mat(0.0, 0.0, -2.5) eye = avango.gua.nodes.TransformNode(Name = "eye") eye.Transform.value = avango.gua.make_trans_mat(0.0, 2.8, 14.0) eye.Children.value = [screen, pick_ray] graph.Root.value.Children.value.append(light) graph.Root.value.Children.value.append(eye) picker = Picker() picker.SceneGraph.value = graph picker.Ray.value = pick_ray material_updater = MaterialUpdater() material_updater.DefaultMaterial.value = "data/materials/Stone.gmd" material_updater.TargetMaterial.value = "data/materials/Bright.gmd" material_updater.PickedNodes.connect_from(picker.Results) pipe = setup_pipe() navigator = examples_common.navigator.Navigator() navigator.StartLocation.value = eye.Transform.value.get_translate() navigator.OutTransform.connect_from(eye.Transform) navigator.RotationSpeed.value = 0.2 navigator.MotionSpeed.value = 0.04 eye.Transform.connect_from(navigator.OutTransform) viewer = avango.gua.nodes.Viewer() viewer.Pipelines.value = [pipe] viewer.SceneGraphs.value = [graph] guaVE = GuaVE() guaVE.start(locals(), globals()) viewer.run()
def start(): # setup scenegraph graph = avango.gua.nodes.SceneGraph(Name="scenegraph") loader = avango.gua.nodes.TriMeshLoader() left_monkey = loader.create_geometry_from_file( "monkey", "data/objects/monkey.obj", avango.gua.LoaderFlags.NORMALIZE_SCALE) right_monkey = loader.create_geometry_from_file( "monkey", "data/objects/monkey.obj", avango.gua.LoaderFlags.NORMALIZE_SCALE) left_monkey.Material.value.set_uniform( "Color", avango.gua.Vec4(1.0, 0.766, 0.336, 1.0)) left_monkey.Material.value.set_uniform("Roughness", 0.3) left_monkey.Material.value.set_uniform("Metalness", 1.0) right_monkey.Material.value.set_uniform( "Color", avango.gua.Vec4(1.0, 0.266, 0.136, 1.0)) right_monkey.Material.value.set_uniform("Roughness", 0.6) right_monkey.Material.value.set_uniform("Metalness", 0.0) left_rot_transform = avango.gua.nodes.TransformNode(Children=[left_monkey]) left_pos_transform = avango.gua.nodes.TransformNode( Transform=avango.gua.make_trans_mat(-0.5, 0.0, 0.0), Children=[left_rot_transform]) right_rot_transform = avango.gua.nodes.TransformNode( Children=[right_monkey]) right_pos_transform = avango.gua.nodes.TransformNode( Transform=avango.gua.make_trans_mat(0.5, 0.0, 0.0), Children=[right_rot_transform]) light = avango.gua.nodes.LightNode( Type=avango.gua.LightType.POINT, Name="light", Color=avango.gua.Color(1.0, 1.0, 1.0), Brightness=100.0, Transform=(avango.gua.make_trans_mat(1, 1, 5) * avango.gua.make_scale_mat(30, 30, 30))) size = avango.gua.Vec2ui(1024, 768) window = avango.gua.nodes.GlfwWindow(Size=size, LeftResolution=size) avango.gua.register_window("window", window) cam = avango.gua.nodes.CameraNode(LeftScreenPath="/screen", SceneGraph="scenegraph", Resolution=size, OutputWindowName="window", Transform=avango.gua.make_trans_mat( 0.0, 0.0, 3.5)) res_pass = avango.gua.nodes.ResolvePassDescription() res_pass.EnableSSAO.value = True res_pass.SSAOIntensity.value = 4.0 res_pass.SSAOFalloff.value = 10.0 res_pass.SSAORadius.value = 7.0 #res_pass.EnableScreenSpaceShadow.value = True res_pass.EnvironmentLightingColor.value = avango.gua.Color(0.1, 0.1, 0.1) res_pass.ToneMappingMode.value = avango.gua.ToneMappingMode.UNCHARTED res_pass.Exposure.value = 1.0 res_pass.BackgroundColor.value = avango.gua.Color(0.45, 0.5, 0.6) anti_aliasing = avango.gua.nodes.SSAAPassDescription() pipeline_description = avango.gua.nodes.PipelineDescription(Passes=[ avango.gua.nodes.TriMeshPassDescription(), avango.gua.nodes.LightVisibilityPassDescription(), res_pass, anti_aliasing, ]) cam.PipelineDescription.value = pipeline_description screen = avango.gua.nodes.ScreenNode(Name="screen", Width=2, Height=1.5, Children=[cam]) graph.Root.value.Children.value = [ left_pos_transform, right_pos_transform, light, screen ] #setup viewer viewer = avango.gua.nodes.Viewer() viewer.SceneGraphs.value = [graph] viewer.Windows.value = [window] # device sensor listening to the daemon values device = avango.daemon.nodes.DeviceSensor( DeviceService=avango.daemon.DeviceService()) # station name determines which device is used device.Station.value = "gua-device-xbox-0" # 0 for first xbox controller # field container to set rotation of left monkey left_rotation_updater = DeviceRotate() left_rotation_updater.RotY.connect_from(device.Value0) left_rotation_updater.RotX.connect_from(device.Value1) left_rot_transform.Transform.connect_from(left_rotation_updater.MatrixOut) # field container to set rotation of right monkey right_rotation = DeviceRotate() right_rotation.RotY.connect_from(device.Value2) right_rotation.RotX.connect_from(device.Value3) right_rot_transform.Transform.connect_from(right_rotation.MatrixOut) # all buttons change the background color bgcolor_updater = RandomColor() bgcolor_updater.Trigger.connect_from(device.Button0) bgcolor_updater.Trigger.connect_from(device.Button1) bgcolor_updater.Trigger.connect_from(device.Button2) bgcolor_updater.Trigger.connect_from(device.Button3) bgcolor_updater.Trigger.connect_from(device.Button4) bgcolor_updater.Trigger.connect_from(device.Button5) bgcolor_updater.Trigger.connect_from(device.Button6) bgcolor_updater.Trigger.connect_from(device.Button7) bgcolor_updater.Trigger.connect_from(device.Button8) bgcolor_updater.Trigger.connect_from(device.Button9) res_pass.BackgroundColor.connect_from(bgcolor_updater.ColorOut) guaVE = GuaVE() guaVE.start(locals(), globals()) viewer.run()
def start(filename): # setup scenegraph graph = avango.gua.nodes.SceneGraph(Name="scenegraph") loader = avango.gua.nodes.TriMeshLoader() spointsloader = avango.gua.nodes.SPointsLoader() spoints_geode = spointsloader.load("kinect", filename) transform1 = avango.gua.nodes.TransformNode(Children=[spoints_geode]) light = avango.gua.nodes.LightNode( Type=avango.gua.LightType.POINT, Name="light", Color=avango.gua.Color(1.0, 1.0, 1.0), Brightness=100.0, Transform=(avango.gua.make_trans_mat(1, 1, 5) * avango.gua.make_scale_mat(30, 30, 30))) size = avango.gua.Vec2ui(1024, 768) window = avango.gua.nodes.GlfwWindow(Size=size, LeftResolution=size) avango.gua.register_window("window", window) cam = avango.gua.nodes.CameraNode( LeftScreenPath="/screen", SceneGraph="scenegraph", Resolution=size, OutputWindowName="window", Transform=avango.gua.make_trans_mat(0.0, 0.0, 3.5)) res_pass = avango.gua.nodes.ResolvePassDescription() res_pass.EnableSSAO.value = True res_pass.SSAOIntensity.value = 4.0 res_pass.SSAOFalloff.value = 10.0 res_pass.SSAORadius.value = 7.0 #res_pass.EnableScreenSpaceShadow.value = True res_pass.EnvironmentLightingColor.value = avango.gua.Color(0.1, 0.1, 0.1) res_pass.ToneMappingMode.value = avango.gua.ToneMappingMode.UNCHARTED res_pass.Exposure.value = 1.0 res_pass.BackgroundColor.value = avango.gua.Color(0.45, 0.5, 0.6) anti_aliasing = avango.gua.nodes.SSAAPassDescription() pipeline_description = avango.gua.nodes.PipelineDescription( Passes=[ avango.gua.nodes.TriMeshPassDescription(), avango.gua.nodes.LightVisibilityPassDescription(), avango.gua.nodes.SPointsPassDescription(), res_pass, anti_aliasing, ]) cam.PipelineDescription.value = pipeline_description screen = avango.gua.nodes.ScreenNode( Name="screen", Width=2, Height=1.5, Children=[cam]) graph.Root.value.Children.value = [transform1, light, screen] #setup viewer viewer = avango.gua.nodes.Viewer() viewer.SceneGraphs.value = [graph] viewer.Windows.value = [window] monkey_updater = TimedRotate() timer = avango.nodes.TimeSensor() monkey_updater.TimeIn.connect_from(timer.Time) transform1.Transform.connect_from(monkey_updater.MatrixOut) guaVE = GuaVE() guaVE.start(locals(), globals()) viewer.run()
def start(): graph = avango.gua.nodes.SceneGraph(Name="scene") loader = avango.gua.nodes.TriMeshLoader() fps_size = avango.gua.Vec2(170, 55) fps = avango.gua.gui.nodes.GuiResourceNode() fps.TextureName.value = "fps" fps.URL.value = "asset://gua/data/html/fps.html" fps.Size.value = fps_size fps_quad = avango.gua.nodes.TexturedScreenSpaceQuadNode( Name="fps_quad", Texture="fps", Width=int(fps_size.x), Height=int(fps_size.y), Anchor=avango.gua.Vec2(1.0, 1.0)) graph.Root.value.Children.value.append(fps_quad) fallback_mat = avango.gua.create_material( avango.gua.MaterialCapabilities.COLOR_VALUE | avango.gua.MaterialCapabilities.ROUGHNESS_VALUE) fallback_mat.set_uniform("Roughness", 0.6) for x in range(0, CUBE_COUNT_X): for y in range(0, CUBE_COUNT_Y): for z in range(0, CUBE_COUNT_Z): new_cube = loader.create_geometry_from_file( "cube" + str(x) + str(y) + str(z), "data/objects/monkey.obj", fallback_mat, avango.gua.LoaderFlags.DEFAULTS) new_cube.Transform.value = avango.gua.make_trans_mat(x*2, y*2, z*2) * \ avango.gua.make_scale_mat(0.3, 0.3, 0.3) graph.Root.value.Children.value.append(new_cube) new_cube.ShadowMode.value = 1 sun_light = avango.gua.nodes.LightNode( Name="sun_light", Type=avango.gua.LightType.SUN, Color=avango.gua.Color(1.0, 1.0, 0.7), EnableShadows=True, ShadowMapSize=1024, ShadowOffset=0.0005, ShadowCascadedSplits=[0.1, 4, 7, 20], ShadowMaxDistance=30, ShadowNearClippingInSunDirection=100, ShadowFarClippingInSunDirection=100, Brightness=4) graph.Root.value.Children.value.append(sun_light) floor = loader.create_geometry_from_file( "floor", "data/objects/plane.obj", fallback_mat, avango.gua.LoaderFlags.DEFAULTS) floor.Transform.value = avango.gua.make_scale_mat( 200, 1, 200) * avango.gua.make_trans_mat(-0.5, -0.2, -0.5) floor.ShadowMode.value = 0 graph.Root.value.Children.value.append(floor) width = 1920 height = int(width * 9.0 / 16.0) size = avango.gua.Vec2ui(width, height) screen = avango.gua.nodes.ScreenNode( Name="screen", Width=4.8, Height=2.7, Transform=avango.gua.make_trans_mat(0.0, 0.0, -2.5)) camera = avango.gua.nodes.CameraNode( Name="cam", LeftScreenPath="/cam/screen", RightScreenPath="/cam/screen", SceneGraph="scene", Resolution=size, OutputWindowName="window", EyeDistance=0.2, EnableStereo=False, Children=[screen], Transform=avango.gua.make_trans_mat(0.0, 0.0, 7.0)) res_pass = avango.gua.nodes.ResolvePassDescription() res_pass.EnableSSAO.value = True res_pass.SSAOIntensity.value = 3.0 res_pass.SSAOFalloff.value = 20.0 res_pass.SSAORadius.value = 10.0 res_pass.EnvironmentLightingTexture.value = "day_skymap" res_pass.AlternativeEnvironmentLightingTexture.value = "night_skymap" res_pass.EnvironmentLightingMode.value = avango.gua.EnvironmentLightingMode.CUBEMAP res_pass.ToneMappingMode.value = avango.gua.ToneMappingMode.UNCHARTED res_pass.Exposure.value = 1.0 res_pass.VignetteColor.value = avango.gua.Vec4(0, 0, 0, 0.7) res_pass.VignetteCoverage.value = 0.0 res_pass.EnableFog.value = True res_pass.FogStart.value = 30 res_pass.FogEnd.value = 100 res_pass.BackgroundMode.value = avango.gua.BackgroundMode.CUBEMAP_TEXTURE res_pass.BackgroundTexture.value = "day_skymap" res_pass.AlternativeBackgroundTexture.value = "night_skymap" sky_pass = avango.gua.nodes.SkyMapPassDescription( OutputTextureName="day_skymap") avango.gua.create_texture_cube( "night_skymap", "data/textures/stars/purple-nebula/purple-nebula_right1.jpg", "data/textures/stars/purple-nebula/purple-nebula_left2.jpg", "data/textures/stars/purple-nebula/purple-nebula_bottom4.jpg", "data/textures/stars/purple-nebula/purple-nebula_top3.jpg", "data/textures/stars/purple-nebula/purple-nebula_front5.jpg", "data/textures/stars/purple-nebula/purple-nebula_back6.jpg") pipeline_description = avango.gua.nodes.PipelineDescription( Passes=[ sky_pass, avango.gua.nodes.TriMeshPassDescription( ), avango.gua.nodes.LightVisibilityPassDescription(), res_pass, avango.gua.nodes.TexturedScreenSpaceQuadPassDescription() ]) camera.PipelineDescription.value = pipeline_description graph.Root.value.Children.value.append(camera) window = avango.gua.nodes.Window( Size=size, Title="shadows", LeftResolution=size, RightResolution=size, EnableVsync=False, StereoMode=avango.gua.StereoMode.MONO) avango.gua.register_window("window", window) navigator = examples_common.navigator.Navigator() navigator.StartLocation.value = camera.Transform.value.get_translate() navigator.OutTransform.connect_from(camera.Transform) navigator.RotationSpeed.value = 0.2 navigator.MotionSpeed.value = 0.04 camera.Transform.connect_from(navigator.OutTransform) viewer = avango.gua.nodes.Viewer() viewer.SceneGraphs.value = [graph] viewer.Windows.value = [window] timer = avango.nodes.TimeSensor() fps_updater = FPSUpdater(FPSResource=fps, Window=window, Viewer=viewer) fps_updater.TimeIn.connect_from(timer.Time) sun_updater = SunUpdater(TimeScale=3500) sun_updater.TimeIn.connect_from(timer.Time) sun_light.Transform.connect_from(sun_updater.MatrixOut) sun_light.Color.connect_from(sun_updater.SunColorOut) sky_pass.LightDirection.connect_from(sun_updater.DirectionOut) sky_pass.GroundColor.connect_from(sun_updater.GroundColorOut) res_pass.BackgroundTextureBlendFactor.connect_from( sun_updater.BlendFactorOut) res_pass.EnvironmentLightingTextureBlendFactor.connect_from( sun_updater.BlendFactorOut) guaVE = GuaVE() guaVE.start(locals(), globals()) viewer.run()
def start(): # setup scenegraph graph = avango.gua.nodes.SceneGraph(Name="scenegraph") #environment: tri_mesh_loader = avango.gua.nodes.TriMeshLoader() path_plane = "/opt/project_animation/demo/data/objects/cube2.obj" flags_plane = avango.gua.LoaderFlags.NORMALIZE_POSITION \ | avango.gua.LoaderFlags.NORMALIZE_SCALE \ | avango.gua.LoaderFlags.OPTIMIZE_GEOMETRY \ | avango.gua.LoaderFlags.MAKE_PICKABLE \ | avango.gua.LoaderFlags.LOAD_MATERIALS plane = tri_mesh_loader.create_geometry_from_file("cube", path_plane, flags_plane) plane.Transform.value *= \ avango.gua.make_scale_mat(10.0, 0.01, 10.0) * \ avango.gua.make_trans_mat(0, -3, 0) path_normal = "/opt/project_animation/demo/data/objects/glass_2_3_nm.TGA" plane.Material.value.set_uniform("NormalMap", path_normal) sunlight = \ avango.gua.nodes.LightNode( Type=avango.gua.LightType.SUN, Name="light", Color=avango.gua.Color(245.0/255.0, 246.0/255.0, 178.0/255.0), Brightness=5.0, Transform=(avango.gua.make_rot_mat(119.5, 0.0, 1.0, 0.0) * avango.gua.make_rot_mat(-10, 1.0, 0.0, 0.0)) ) #view setup: size = avango.gua.Vec2ui(2560, 1440) window = avango.gua.nodes.GlfwWindow( Size=size, LeftResolution=size ) window.CursorMode.value = 2 window.EnableFullscreen.value = False cam = avango.gua.nodes.CameraNode( LeftScreenPath="/screen", SceneGraph="scenegraph", Resolution=size, OutputWindowName="window") #render pipeline pipeline_description = avango.gua.nodes.PipelineDescription( Passes=[ avango.gua.nodes.TriMeshPassDescription(), avango.gua.nodes.LightVisibilityPassDescription(), avango.gua.skelanim.nodes.SkeletalAnimationPassDescription(), avango.gua.nodes.ResolvePassDescription(), avango.gua.nodes.SSAAPassDescription(), ]) pipeline_description.Passes.value[3].EnableSSAO.value = True pipeline_description.Passes.value[3].SSAORadius.value = 2.0 pipeline_description.Passes.value[3].SSAOIntensity.value = 2.0 pipeline_description.Passes.value[3].BackgroundMode.value = 1 pipeline_description.Passes.value[3].BackgroundTexture.value = \ "/opt/avango/master/examples/picking/data/textures/skymap.jpg" pipeline_description.Passes.value[3].ToneMappingMode.value = \ avango.gua.ToneMappingMode.LINEAR #pipeline_description.EnableABuffer.value = True cam.PipelineDescription.value = pipeline_description cam.Transform.value = avango.gua.make_trans_mat(0.0, 0.0, 0.4) cam.FarClip.value = 300 cam.NearClip.value = 0.01 screen = avango.gua.nodes.ScreenNode( Name="screen", Width=0.8, Height=0.45) screen.Children.value = [cam] screen.Transform.value = avango.gua.make_trans_mat(0, 0.1, -2) graph.Root.value.Children.value = [screen, plane, sunlight] avango.gua.register_window("window", window) #setup viewer viewer = avango.gua.nodes.Viewer() viewer.SceneGraphs.value = [graph] viewer.Windows.value = [window] window.CursorMode.value = avango.gua.CursorMode.DISABLED #XBOX Controller device_sensor = avango.daemon.nodes.DeviceSensor( DeviceService=avango.daemon.DeviceService()) device_sensor.Station.value = "device-xbox-1" #mixamo character skel_mesh_loader = avango.gua.skelanim.nodes.SkeletalAnimationLoader() #scenegraph setup: #root -> kachujin_ground -> kachujin_nav -> kachujin # ground following character control geometry kachujin_ground = avango.gua.nodes.TransformNode(Name="kachujin_ground") graph.Root.value.Children.value.append(kachujin_ground) kachujin_nav = avango.gua.nodes.TransformNode(Name="kachujin_nav") #set initial position of character here: #kachujin_nav.Transform.value = avango.gua.make_trans_mat(0.0, 0.0, 0.0) kachujin = skel_mesh_loader.create_geometry_from_file( "kachujin", "/opt/project_animation/Assets/Mixamo/Kachujin/Kachujin_G_Rosales.FBX", avango.gua.LoaderFlags.LOAD_MATERIALS | avango.gua.LoaderFlags.NORMALIZE_SCALE) kachujin.Transform.value = \ kachujin.Transform.value * \ avango.gua.make_rot_mat(-90.0, 1.0, 0.0, 0.0) * \ avango.gua.make_scale_mat(0.02, 0.02, 0.02) #load animations from character settings load_mixamo_animations_kachujin(kachujin) kachujin_ground.Children.value = [kachujin_nav] kachujin_nav.Children.value = [kachujin] #character control kachujin_character_control = CharacterControl() kachujin_character_control.my_constructor(kachujin, kachujin_nav, AnimationConfig("idle"), window) #override keyboard events with xbox controller events: #apply_character_control_settings_mixamo(kachujin_character_control, # device_sensor) apply_character_control_settings_mixamo(kachujin_character_control) #wall detection kachujin_character_control.activate_wall_detection(0.0075, 0.009, "idle", graph) #camera control kachujin_camera_control = CameraControl() kachujin_camera_control.my_constructor(kachujin, window, -17.0) screen.Transform.connect_from(kachujin_camera_control.OutTransform) #camera_control_xbox_connect(kachujin_camera_control, device_sensor) #ground following kachujin_ground_following = GroundFollowing( SceneGraph=graph, OffsetToGround=0.01, MaxDistanceToGround=100.0 ) kachujin_ground_following.my_constructor(gravity=-0.00005) kachujin_ground_following.InTransform.connect_from(kachujin.WorldTransform) kachujin_ground.Transform.connect_from( kachujin_ground_following.OutTransform) guaVE = GuaVE() guaVE.start(locals(), globals()) viewer.run()
def start(): graph = avango.gua.nodes.SceneGraph(Name = "scene") loader = avango.gua.nodes.TriMeshLoader() fps_size = avango.gua.Vec2(170, 55) fps = avango.gua.gui.nodes.GuiResourceNode() fps.TextureName.value = "fps" fps.URL.value = "asset://gua/data/html/fps.html" fps.Size.value = fps_size fps_quad = avango.gua.nodes.TexturedScreenSpaceQuadNode( Name = "fps_quad", Texture = "fps", Width = int(fps_size.x), Height = int(fps_size.y), Anchor = avango.gua.Vec2(1.0, 1.0) ) graph.Root.value.Children.value.append(fps_quad) fallback_mat = avango.gua.create_material(avango.gua.MaterialCapabilities.COLOR_VALUE) for x in range(0, CUBE_COUNT_X): for y in range(0, CUBE_COUNT_Y): for z in range(0, CUBE_COUNT_Z): new_cube = loader.create_geometry_from_file( "cube" + str(x) + str(y) + str(z), "data/objects/monkey.obj", fallback_mat, avango.gua.LoaderFlags.DEFAULTS ) # new_cube.Material.value.set_uniform("Color", avango.gua.Vec4(1, 1, 1, 0.6)) new_cube.Transform.value = avango.gua.make_trans_mat(x*2, y*2, z*2) * \ avango.gua.make_scale_mat(0.3, 0.3, 0.3) graph.Root.value.Children.value.append(new_cube) new_cube.ShadowMode.value = 1 spot_light_1 = avango.gua.nodes.LightNode(Name = "spot_light_1", Type = avango.gua.LightType.SPOT, Color = avango.gua.Color(1.0, 0.0, 0.7), EnableShadows = True, ShadowMapSize = 512, ShadowOffset = 0.002, ShadowMaxDistance = 10, Falloff = 1.5, Softness = 2, Brightness = 10) spot_light_1.Transform.value = avango.gua.make_trans_mat(14.0, 3.0, 18.0) * avango.gua.make_rot_mat(-20, 1, 0, 0) * avango.gua.make_scale_mat(20) graph.Root.value.Children.value.append(spot_light_1) point_light1 = avango.gua.nodes.LightNode( Type = avango.gua.LightType.POINT, Name = "point_light1", Color = avango.gua.Color(0.2, 1.0, 1.7), EnableShadows = True, ShadowMapSize = 128, ShadowMaxDistance = 10, ShadowOffset = 0.03, Falloff = 0.5, Brightness = 20) point_light1.Transform.value = avango.gua.make_trans_mat(4.5, 1.0, 4.5) * avango.gua.make_scale_mat(4) graph.Root.value.Children.value.append(point_light1) sun_light = avango.gua.nodes.LightNode(Name = "sun_light", Type = avango.gua.LightType.SUN, Color = avango.gua.Color(1.0, 1.0, 0.7), EnableShadows = True, ShadowMapSize = 1024, ShadowOffset = 0.0005, ShadowCascadedSplits = [0.1, 4, 7, 20], ShadowMaxDistance = 30, ShadowNearClippingInSunDirection = 100, ShadowFarClippingInSunDirection = 100, Brightness = 2 ) sun_light.Transform.value = avango.gua.make_rot_mat(210, 0, 1, 0) * avango.gua.make_rot_mat(-50.0, 1.0, 0.0, 0.0) graph.Root.value.Children.value.append(sun_light) floor = loader.create_geometry_from_file( "floor", "data/objects/plane.obj", avango.gua.LoaderFlags.DEFAULTS ) floor.Transform.value = avango.gua.make_scale_mat(20, 1, 20) * avango.gua.make_trans_mat(1, -0.2, 1) floor.ShadowMode.value = 0 graph.Root.value.Children.value.append(floor) width = 1920; height = int(width * 9.0 / 16.0) size = avango.gua.Vec2ui(width, height) screen = avango.gua.nodes.ScreenNode(Name = "screen", Width = 4.8, Height = 2.7) screen.Transform.value = avango.gua.make_trans_mat(0.0, 0.0, -2.5) camera = avango.gua.nodes.CameraNode( Name = "cam", LeftScreenPath = "/cam/screen", RightScreenPath = "/cam/screen", SceneGraph = "scene", Resolution = size, OutputWindowName = "window", EyeDistance = 0.2, EnableStereo = False, Children = [screen], Transform = avango.gua.make_trans_mat(0.0, 0.0, 7.0) ) res_pass = avango.gua.nodes.ResolvePassDescription() res_pass.EnableSSAO.value = True res_pass.SSAOIntensity.value = 3.0 res_pass.SSAOFalloff.value = 20.0 res_pass.SSAORadius.value = 10.0 res_pass.EnvironmentLightingColor.value = avango.gua.Color(0.1,0.1,0.1) res_pass.ToneMappingMode.value = avango.gua.ToneMappingMode.UNCHARTED res_pass.Exposure.value = 1.0 res_pass.BackgroundMode.value = avango.gua.BackgroundMode.CUBEMAP_TEXTURE res_pass.BackgroundTexture.value = "awesome_skymap" # res_pass.BackgroundColor.value = avango.gua.Color(0.45, 0.5, 0.6) res_pass.VignetteColor.value = avango.gua.Vec4(0, 0, 0, 1) pipeline_description = avango.gua.nodes.PipelineDescription( Passes = [ avango.gua.nodes.TriMeshPassDescription(), avango.gua.nodes.SkyMapPassDescription( OutputTextureName="awesome_skymap" ), avango.gua.nodes.LightVisibilityPassDescription(), res_pass, avango.gua.nodes.BBoxPassDescription(), avango.gua.nodes.TexturedScreenSpaceQuadPassDescription() # avango.gua.nodes.DebugViewPassDescription() ], EnableABuffer = False ) camera.PipelineDescription.value = pipeline_description graph.Root.value.Children.value.append(camera) window = avango.gua.nodes.Window( Size = size, Title = "shadows", LeftResolution = size, RightResolution = size, EnableVsync = False, StereoMode = avango.gua.StereoMode.MONO ) avango.gua.register_window("window", window) navigator = examples_common.navigator.Navigator() navigator.StartLocation.value = camera.Transform.value.get_translate() navigator.OutTransform.connect_from(camera.Transform) navigator.RotationSpeed.value = 0.2 navigator.MotionSpeed.value = 0.04 camera.Transform.connect_from(navigator.OutTransform) viewer = avango.gua.nodes.Viewer() # viewer.DesiredFPS.value = 200 viewer.SceneGraphs.value = [graph] viewer.Windows.value = [window] timer = avango.nodes.TimeSensor() fps_updater = FPSUpdater( FPSResource=fps, Window=window, Viewer=viewer ) fps_updater.TimeIn.connect_from(timer.Time) guaVE = GuaVE() guaVE.start(locals(), globals()) viewer.run()
def start(): # setup scenegraph graph = avango.gua.nodes.SceneGraph(Name = "scenegraph") loader = avango.gua.nodes.TriMeshLoader() monkey = loader.create_geometry_from_file("monkey", "data/objects/monkey.obj", avango.gua.LoaderFlags.DEFAULTS) light = avango.gua.nodes.LightNode( Type=avango.gua.LightType.POINT, Name = "light", Color = avango.gua.Color(1.0, 1.0, 1.0), Brightness = 10 ) light.Transform.value = avango.gua.make_trans_mat(1, 1, 2) * avango.gua.make_scale_mat(15, 15, 15) # setup viewing width = 1024 height = 768 eye_size = avango.gua.Vec2ui(width, height) window_size = avango.gua.Vec2ui(width, height) left_pos = avango.gua.Vec2ui(0, 0) right_pos = avango.gua.Vec2ui(0, 0) if STEREO_MODE == avango.gua.StereoMode.SIDE_BY_SIDE: right_pos.x = width + 1 window_size.x *= 2 window = avango.gua.nodes.GlfwWindow(Size = window_size, LeftPosition = left_pos, LeftResolution = eye_size, RightPosition = right_pos, RightResolution = eye_size, StereoMode = STEREO_MODE) avango.gua.register_window("window", window) cam = avango.gua.nodes.CameraNode( Name = "cam", LeftScreenPath = "/screen", RightScreenPath = "/screen", SceneGraph = "scenegraph", Resolution = eye_size, EyeDistance = 1.2, EnableStereo = True, OutputWindowName = "window", Transform = avango.gua.make_trans_mat(0.0, 0.0, 3.5) ) screen = avango.gua.nodes.ScreenNode(Name = "screen", Width = 4, Height = 3) screen.Children.value = [cam] graph.Root.value.Children.value = [monkey, light, screen] #setup viewer viewer = avango.gua.nodes.Viewer() viewer.SceneGraphs.value = [graph] viewer.Windows.value = [window] monkey_updater = TimedRotate() timer = avango.nodes.TimeSensor() monkey_updater.TimeIn.connect_from(timer.Time) monkey.Transform.connect_from(monkey_updater.MatrixOut) guaVE = GuaVE() guaVE.start(locals(), globals()) viewer.run()