Files
PyRenderEngine/engine/scene.py
Exil Productions fb3b098299 Engine Code
2025-04-07 22:07:52 +02:00

37 lines
975 B
Python

from engine.light import PointLight
class Scene:
def __init__(self):
self.models = []
self.lights = []
self.camera = None
def add_model(self, model):
self.models.append(model)
def add_light(self, light):
self.lights.append(light)
def set_camera(self, camera):
self.camera = camera
def render(self, shader):
if not self.camera:
raise ValueError("Camera not set in scene")
#TODO: Actually do something with this boolean
dir_light_set = False
point_light_count = 0
for light in self.lights:
if isinstance(light, PointLight):
light.apply(shader, point_light_count)
point_light_count += 1
else:
light.apply(shader, 0)
dir_light_set = True
shader.set_int("numPointLights", point_light_count)
for model in self.models:
model.draw(shader)