def __build_Star_Sphere(self, bg_stars): from panda3d.core import GeomVertexWriter, GeomVertexFormat, GeomVertexData from panda3d.core import Geom, GeomNode, GeomPoints, AmbientLight self.star_sphere_np.removeNode() # Fill GeomVertexData. vformat = GeomVertexFormat.getV3c4() vdata = GeomVertexData("Data", vformat, Geom.UHStatic) vertices = GeomVertexWriter(vdata, "vertex") colours = GeomVertexWriter(vdata, "color") for coords in bg_stars: x, y, z = coords vertices.addData3f(x, y, z) colours.addData4f(1, 1, 1, 1) # Render bg stars. bg_stars = GeomPoints(Geom.UHStatic) bg_stars.addNextVertices(_env.STAR_COUNT) bg_stars_geom = Geom(vdata) bg_stars_geom.addPrimitive(bg_stars) star_sphere = GeomNode("star_sphere") star_sphere.addGeom(bg_stars_geom) star_sphere_np = NodePath(star_sphere) star_sphere_np.reparentTo(self.NP) return star_sphere_np
def __build_Star_Sphere(self, bg_stars): from panda3d.core import GeomVertexWriter, GeomVertexFormat, GeomVertexData from panda3d.core import Geom, GeomNode, GeomPoints, AmbientLight self.star_sphere_np.removeNode() # Fill GeomVertexData. vformat = GeomVertexFormat.getV3c4() vdata = GeomVertexData("Data", vformat, Geom.UHStatic) vertices = GeomVertexWriter(vdata, "vertex") colours = GeomVertexWriter(vdata, "color") for coords in bg_stars: x, y, z = coords vertices.addData3f(x, y, z) colours.addData4f(1, 1, 1, 1) # Render bg stars. bg_stars = GeomPoints(Geom.UHStatic) bg_stars.addNextVertices(_env.STAR_COUNT) bg_stars_geom = Geom(vdata) bg_stars_geom.addPrimitive(bg_stars) star_sphere = GeomNode("star_sphere") star_sphere.addGeom(bg_stars_geom) star_sphere_np = NodePath(star_sphere) star_sphere_np.reparentTo(self.NP) return star_sphere_np
def __node(self): # this function creates and returns particles' GeomNode points = GeomPoints(GeomEnums.UH_static) points.addNextVertices(self.__numPart) format_ = GeomVertexFormat.getEmpty() geom = Geom(GeomVertexData("abc", format_, GeomEnums.UH_static)) geom.addPrimitive(points) geom.setBounds(OmniBoundingVolume()) # always render it node = GeomNode("node") node.addGeom(geom) return node
dlnp.setHpr(0, -60, 0) #altRender.setLight(dlnp) #altRender.setLight(alnp) # vertex writer vdata = GeomVertexData('points', GeomVertexFormat.getV3(), Geom.UHDynamic) vwriter = GeomVertexWriter(vdata, 'vertex') # 100 randomly generated vertex coordinates for i in range(100): vwriter.addData3f(uniform(-100, 100), uniform(-100, 100), uniform(-100, 100)) # create geom points = GeomPoints(Geom.UHDynamic) points.addNextVertices(100) points.closePrimitive() geo = Geom(vdata) geo.addPrimitive(points) gnode = GeomNode('points') gnode.addGeom(geo) np = render.attachNewNode(gnode) # point sprite effect np.setTransparency(TransparencyAttrib.MDual) np.setTexGen(TextureStage.getDefault(), TexGenAttrib.MPointSprite) np.setTexture(altBuffer.getTexture()) np.setRenderModePerspective(True) np.setRenderModeThickness(8)