Plane, Vec3, BitMask32
from panda3d.bullet import BulletBoxShape, BulletRigidBodyNode, BulletGhostNode
from direct.gui.OnscreenText import OnscreenText
-from lib.lib.p3d.gfx import P3dGfxMgr
+from lib.lib.p3d.gfx import P3dGfxMgr, set_srgb
class Box:
self._np = render.attach_new_node(self.node)
world.attach_ghost(self.node)
self._model = loader.load_model('assets/gltf/box/box.gltf')
+ set_srgb(self._model)
self._model.flatten_light()
self._model.reparent_to(self._np)
self._set_outline_model()
+ set_srgb(self._outline_model)
self._model.hide(BitMask32(0x01))
self._outline_model.hide(BitMask32(0x01))
self._start_drag_pos = None
self.__next_btn, self.__prev_btn, self.__rewind_btn]
[btn.destroy() for btn in btns]
- def _set_directional_light(self, name, hpr, color):
- light = DirectionalLight(name)
+ def _set_spotlight(self, name, pos, look_at, color, shadows=False):
+ light = Spotlight(name)
+ if shadows:
+ light.setLens(PerspectiveLens())
light_np = render.attach_new_node(light)
- light_np.set_hpr(*hpr)
+ light_np.set_pos(pos)
+ light_np.look_at(look_at)
light.set_color(color)
render.set_light(light_np)
return light_np
def _set_lights(self):
alight = AmbientLight('alight') # for ao
- alight.set_color((.4, .4, .4, 1))
- alnp = render.attach_new_node(alight)
- render.set_light(alnp)
- self._key_light = self._set_directional_light(
- 'key light', (315, -60, 0), (3.6, 3.6, 3.6, 1))
- self._fill_light = self._set_directional_light(
- 'fill light', (195, -30, 0), (.4, .4, .4, 1))
- self._rim_light = self._set_directional_light(
- 'rim light', (75, -30, 0), (.3, .3, .3, 1))
- slight = Spotlight('slight')
- slight.set_color((.1, .1, .1, 1))
- slight.setLens(PerspectiveLens())
- self.__shadow_light = render.attachNewNode(slight)
- self.__shadow_light.set_pos(-5, -80, 5)
- self.__shadow_light.look_at((0, 0, 0))
- render.set_light(self.__shadow_light)
- self.__shadow_light.node().set_shadow_caster(True, 2048, 2048)
- self.__shadow_light.node().get_lens().set_film_size(2048, 2048)
- self.__shadow_light.node().get_lens().set_near_far(1, 256)
- self.__shadow_light.node().set_camera_mask(BitMask32(0x01))
+ alight.set_color((.15, .15, .15, 1))
+ self._alnp = render.attach_new_node(alight)
+ render.set_light(self._alnp)
+ self._key_light = self._set_spotlight(
+ 'key light', (-5, -80, 5), (0, 0, 0), (2.8, 2.8, 2.8, 1))
+ self._shadow_light = self._set_spotlight(
+ 'key light', (-5, -80, 5), (0, 0, 0), (.58, .58, .58, 1), True)
+ self._shadow_light.node().set_shadow_caster(True, 2048, 2048)
+ self._shadow_light.node().get_lens().set_film_size(2048, 2048)
+ self._shadow_light.node().get_lens().set_near_far(1, 256)
+ self._shadow_light.node().set_camera_mask(BitMask32(0x01))
def _unset_lights(self):
- for light in [self._key_light, self._fill_light, self._rim_light,
- self.__shadow_light]:
+ for light in [self._alnp, self._key_light, self._shadow_light]:
render.clear_light(light)
light.remove_node()