78 lines
2.3 KiB
Python
78 lines
2.3 KiB
Python
"""
|
|
SSBO Editor Component Demo
|
|
==========================
|
|
Demonstrates how to usage the SSBOEditor component in a new project.
|
|
"""
|
|
import sys
|
|
import os
|
|
|
|
# ============================================================
|
|
# [CRITICAL] RenderPipeline Python Compatibility Fix
|
|
# ============================================================
|
|
if "d:/panda3d/RenderPipeline" not in sys.path:
|
|
sys.path.insert(0, "d:/panda3d/RenderPipeline")
|
|
|
|
try:
|
|
import rplibs.six
|
|
import six
|
|
if not hasattr(rplibs.six, 'moves'):
|
|
rplibs.six.moves = six.moves
|
|
sys.modules['rplibs.six.moves'] = six.moves
|
|
except ImportError:
|
|
import six
|
|
import types
|
|
if "rplibs" not in sys.modules:
|
|
rplibs = types.ModuleType("rplibs")
|
|
sys.modules["rplibs"] = rplibs
|
|
if "rplibs.six" not in sys.modules:
|
|
rplibs.six = six
|
|
sys.modules["rplibs.six"] = six
|
|
sys.modules["rplibs.six.moves"] = six.moves
|
|
|
|
# ============================================================
|
|
# Main Application
|
|
# ============================================================
|
|
from direct.showbase.ShowBase import ShowBase
|
|
from panda3d.core import loadPrcFileData, Filename
|
|
from rpcore import RenderPipeline
|
|
|
|
# Import our new component
|
|
# Assuming d:/panda3d is in python path, or running from d:/panda3d
|
|
from ssbo_component.ssbo_editor import SSBOEditor
|
|
|
|
loadPrcFileData("", "show-frame-rate-meter true")
|
|
loadPrcFileData("", "sync-video false")
|
|
|
|
class MyGame(ShowBase):
|
|
def __init__(self):
|
|
# 1. RP Init
|
|
self.rp = RenderPipeline()
|
|
self.rp.pre_showbase_init()
|
|
super().__init__()
|
|
|
|
# Position camera before RP create to avoid huge motion blur jump
|
|
self.cam.setPos(0, -500, 200)
|
|
self.cam.lookAt(0, 0, 0)
|
|
|
|
self.rp.create(self)
|
|
self.rp.daytime_mgr.time = 0.415
|
|
|
|
# 2. Use the Component
|
|
# Point to your model
|
|
model_path = "d:/panda3d/panda3d/jyc.glb"
|
|
font_path = "d:/panda3d/font/msyh.ttc"
|
|
|
|
print("Initializing SSBO Editor Component...")
|
|
self.editor = SSBOEditor(
|
|
base_app=self,
|
|
render_pipeline=self.rp,
|
|
model_path=model_path,
|
|
font_path=font_path
|
|
)
|
|
|
|
print("Demo ready.")
|
|
|
|
if __name__ == "__main__":
|
|
app = MyGame()
|
|
app.run()
|