11from direct .interval .LerpInterval import LerpPosInterval
2- from panda3d .core import loadPrcFile , loadPrcFileData , LPoint3f
2+ from panda3d .core import loadPrcFile , loadPrcFileData , LPoint3f , PointLight , Spotlight , PerspectiveLens
33from direct .showbase .ShowBase import ShowBase , PTAFloat , AmbientLight , DirectionalLight , Shader , Texture , TextureStage , \
44 SamplerState , FrameBufferProperties , WindowProperties , GraphicsPipe , GraphicsOutput , NodePath
55
@@ -31,7 +31,7 @@ def __init__(self):
3131 myShader : Shader = Shader .load (Shader .SL_GLSL ,
3232 vertex = "assets/shaders/defaults/default.vert" ,
3333 fragment = "assets/shaders/defaults/default.frag" )
34- sphere .setShader (myShader , 1 )
34+ # sphere.setShader(myShader, 1)
3535 sphere .setScale (100 )
3636 sphere .setPos ((0 ,50 ,600 ))
3737
@@ -68,19 +68,25 @@ def __init__(self):
6868 alnp = self .render .attachNewNode (alight )
6969 self .render .setLight (alnp )
7070
71- dlight1 = DirectionalLight ('my dlight1' )
72- dlight1 .setShadowCaster (True , 512 , 512 )
73- #dlight1.show_frustum()
74- dlnp1 = self .render .attachNewNode (dlight1 )
75- dlnp1 .setPos (0 ,0 ,512 )
76- dlnp1 .setHpr (0 , 270 , 0 )
77- self .render .setLight (dlnp1 )
78-
79- bmin , bmax = self .render .get_tight_bounds (dlnp1 )
80- size = 128
71+ sun = DirectionalLight ('TheSun' )
72+ sun .setShadowCaster (True , 1024 , 1024 )
73+ #lens = PerspectiveLens()
74+ #lens.setFov(40)
75+ #sun.setLens(lens)
76+ #sun.attenuation = (0.0000000000000000001, 0., 0.)
77+
78+ sun .show_frustum ()
79+ sun .set_color ((1 , 1 , 1 , 1 ))
80+ sunNodePath = self .render .attachNewNode (sun )
81+ sunNodePath .setPos (0 , 200 , 600 )
82+ sunNodePath .lookAt (0 ,0 ,0 )
83+ self .render .setLight (sunNodePath )
84+
85+ bmin , bmax = self .render .get_tight_bounds (sunNodePath )
86+ size = 512
8187 bmin , bmax = LPoint3f (- size ,0 , - size ), LPoint3f (size , size ,size )
8288 print (bmin ,bmax )
83- lens = dlight1 .get_lens (0 )
89+ lens = sun .get_lens (0 )
8490 lens .set_film_offset ((bmin .xz + bmax .xz ) * 0.5 )
8591 lens .set_film_size (bmax .xz - bmin .xz )
8692 lens .set_near_far (bmin .y , bmax .y )
@@ -90,12 +96,12 @@ def __init__(self):
9096 (0 ,- 100 ,600 ),(0 ,100 ,600 ))
9197 i .loop ()
9298
93- dlight2 = DirectionalLight ('my dlight2' )
94- dlight2 .setColor ((0.05 , 0.05 , 0.05 , 1 ))
95- dlight2 .setShadowCaster (True , 512 , 512 )
96- dlnp2 = self .render .attachNewNode (dlight2 )
97- dlnp2 .setHpr (0 , 180 , 0 )
98- self .render .setLight (dlnp2 )
99+ # dlight2 = DirectionalLight('my dlight2')
100+ # dlight2.setColor((0.05, 0.05, 0.05, 1))
101+ # dlight2.setShadowCaster(True, 512, 512)
102+ # dlnp2 = self.render.attachNewNode(dlight2)
103+ # dlnp2.setHpr(0, 180, 0)
104+ # self.render.setLight(dlnp2)
99105
100106
101107loadPrcFileData ('' , 'framebuffer-multisample 1' )
0 commit comments