modules.render.ubo#

class modules.render.ubo.BatchBlock#

Bases: Structure

baseInstance#

Structure/Union member

instanceCount#

Structure/Union member

meshNodeMatrixId#

Structure/Union member

pad1#

Structure/Union member

class modules.render.ubo.DrawElementsIndirectCommand#

Bases: Structure

baseInstance#

Structure/Union member

baseVertex#

Structure/Union member

count#

Structure/Union member

firstIndex#

Structure/Union member

instanceCount#

Structure/Union member

class modules.render.ubo.GameObjectBlock#

Bases: Structure

enabled#

Structure/Union member

model#

Structure/Union member

model_index#

Structure/Union member

pad2#

Structure/Union member

physic_visual#

Structure/Union member

class modules.render.ubo.InstanceBlock#

Bases: Structure

ObjectId#

Structure/Union member

pad0#

Structure/Union member

pad1#

Structure/Union member

class modules.render.ubo.MeshNodeBlock#

Bases: Structure

baseVertex#

Structure/Union member

firstIndex#

Structure/Union member

material#

Structure/Union member

max_aabb#

Structure/Union member

min_aabb#

Structure/Union member

model#

Structure/Union member

num_indices#

Structure/Union member

class modules.render.ubo.ModelBlock#

Bases: Structure

nodeCount#

Structure/Union member

nodeOffset#

Structure/Union member

pad0#

Structure/Union member

pad1#

Structure/Union member

class modules.render.ubo.ObjectBlock#

Bases: Structure

gameObjectMatrixId#

Structure/Union member

material#

Structure/Union member

meshNodeMatrixId#

Structure/Union member

model#

Structure/Union member

pad2#

Structure/Union member

class modules.render.ubo.PhysicBlock#

Bases: Structure

visual_model#

Structure/Union member

class modules.render.ubo.UBO(context)#

Bases: object

class GpuBuffer(max_elements, element_type, target, buffer_type=<class 'ctypes.c_float'>)#

Bases: object

__init__(max_elements, element_type, target, buffer_type=<class 'ctypes.c_float'>)#
bind_base(binding: int = 0)#
bind_buffer(binding: int = 0)#
clear(value=0)#
upload(num_elements)#
class LightUBO(shader: Shader, block_name: str = 'Lights')#

Bases: object

LIGHT_STRUCT = Struct('4f 4f 4f')#
class Light#

Bases: TypedDict

color: list[float]#
intensity: float#
origin: list[float]#
radius: int#
rotation: list[float]#
t: int#
MAX_LIGHTS = 64#
__init__(shader: Shader, block_name: str = 'Lights')#
bind(binding: int = 0)#
update(num_lights: int)#
class MaterialSSBOBindless(context)#

Bases: object

MAX_MATERIALS = 2096#
STRUCT_LAYOUT = Struct('QQQQQiI')#
__init__(context)#
bind(binding: int = 0)#
update(count: int, materials: list[Material])#
class MaterialUBO(context, shader: Shader, block_name: str = 'Material')#

Bases: object

MAX_MATERIALS = 2096#
STRUCT_LAYOUT = Struct('4f')#
__init__(context, shader: Shader, block_name: str = 'Material')#
bind(binding: int = 0)#
update(count: int, materials: list[Material])#
__init__(context)#

Renderer backend, creating window instance, openGL, FBO’s, shaders and rendertargets

Parameters:

context (EmberEngine) – This is the main context of the application

initialize()#