WorldViz User Forum

WorldViz User Forum (https://forum.worldviz.com/index.php)
-   Vizard (https://forum.worldviz.com/forumdisplay.php?f=17)
-   -   How to make my code more efficent. (https://forum.worldviz.com/showthread.php?t=4573)

Queenss_RA 05-08-2013 12:01 PM

How to make my code more efficent.
 
Hi everyone,

I am trying to create a world that automatically generates 10,000+ objects in it and once these objects have been made I want to fly through them or make them move at a certain speed in any direction I want. I have written code for this but It is not giving me the fps I want. Currently I only get about 7fps with this code and I need this to up to 60fps minimum. I have tried both moving them and moving the camera. But give the same fps. I am fairly new to vizard so any help would be much appreciated. Thank you

CODE BELOW:

import viz
import vizact
import vizshape
import random
import vizinfo
import viztask


#Enable full screen anti-aliasing (FSAA) to smooth edges
viz.setMultiSample(4)

#Start World
viz.go(viz.FULLSCREEN)


#Increase the Field of View
viz.MainWindow.fov(60)

#Set my location 8 meters back from 0,0,0
viz.move([0,0,-8])


def Create_Shape(Number,x_pace,y_pace,z_pace,set_Time) :
#create an array of shapes
shapes = []
#Generate Shapes
for i in range(Number):
#Generate random values for position and orientation
x = random.randint(-100,100)
y = random.randint(-100,100)
z = random.randint(-100,100)
#generate shapes
shape = vizshape.addSphere()
shape.setScale(0.25,0.25,0.25)
shape.setPosition([x,y,z])
shapes.append(shape)

#Move shapes
move = vizact.move(x_pace,y_pace,z_pace,set_Time)
#Loop through all shapes and move them
for shape in shapes:
shape.addAction(move)
#return shapes
return shapes

#Calls create shape with the number of shapes needed to be made and
#the speed and time for the shapes to move at
Create_Shape(10000,0,0,10,10000000)

farshizzo 05-09-2013 03:45 PM

That's a lot of separate objects to be rendering and animating per frame. Do you actually need each object to be a fully modeled sphere, or is a point sprite acceptable. You can most likely achieve your desired frame rate by rendering all the objects as a single mesh of points, and animated the points within a vertex shader. If you are interested in going along with this method, then I can provide some sample code.

Queenss_RA 05-13-2013 09:22 AM

Yeah that would be great! I changed it from spheres to squares thinking that would make it faster, which it did. But this only makes it faster for rotation not translation.


All times are GMT -7. The time now is 09:09 AM.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Copyright 2002-2023 WorldViz LLC