Attention
You are viewing PyUnity docs under the develop
branch.
As such, they are only applicable if you installed from source.
Go to https://docs.pyunity.x10.bz/en/latest/ for the most recent
release.
pyunity.render module
Source code: pyunity/render.py
Classes to aid in rendering in a Scene.
-
pyunity.render.fillScreen(scale=1)[source]
-
class pyunity.render.Shader[source]
Bases: object
-
VERSION = '1.10'
Type: str
-
loadCache(file)[source]
-
compile()[source]
Compiles shader and generates program. Checks for errors.
Notes
This function will not work if there is no active framebuffer.
-
static fromFolder(path, name)[source]
Create a Shader from a folder. It must contain vertex.glsl
and fragment.glsl
.
- Parameters:
-
-
setVec3(var, val)[source]
Set a vec3
uniform variable.
- Parameters:
-
-
setMat3(var, val)[source]
Set a mat3
uniform variable.
- Parameters:
-
-
setMat4(var, val)[source]
Set a mat4
uniform variable.
- Parameters:
-
-
setInt(var, val)[source]
Set an int
uniform variable.
- Parameters:
-
-
setFloat(var, val)[source]
Set a float
uniform variable.
- Parameters:
-
-
use()[source]
Compile shader if it isn’t compiled, and load it into OpenGL.
-
pyunity.render.compileShaders()[source]
-
pyunity.render.compileSkyboxes()[source]
-
pyunity.render.resetShaders()[source]
-
pyunity.render.resetSkyboxes()[source]
-
class pyunity.render.LightType[source]
Bases: IntEnum
An enumeration.
-
Point = 0
Type: int
-
Directional = 1
Type: int
-
Spot = 2
Type: int
-
class pyunity.render.Light[source]
Bases: SingleComponent
Component to hold data about the light in a scene.
-
intensity = 20
Intensity of light
- Type:
int
-
color = RGB(255, 255, 255)
Light color (will mix with material color)
- Type:
Color
-
type = LightType.Directional
Type of light (currently only Point and
Directional are supported)
- Type:
LightType
-
setupBuffers(depthMapSize)[source]
-
class pyunity.render.Camera[source]
Bases: SingleComponent
Component to hold data about the camera in a scene.
-
near = 0.05
Distance of the near plane in the camera frustrum. Defaults to 0.05.
- Type:
float
-
far = 200.0
Distance of the far plane in the camera frustrum. Defaults to 100.
- Type:
float
-
clearColor = None
The clear color of the camera. Defaults to black.
- Type:
Color
-
shader = <pyunity.render.Shader object at 0x7fc4aa68ee80>
The shader to use for 3D objects.
- Type:
Shader
-
skyboxEnabled = True
Toggle skybox on or off. Defaults to True.
- Type:
bool
-
skybox = <pyunity.files.Skybox object at 0x7fc4aa654460>
Selected skybox to render.
- Type:
Skybox
-
ortho = False
Orthographic or perspective proection. Defaults to False.
- Type:
bool
-
customProjMat
If not None, will be used over any other type of projection matrix.
Unavailable from the Editor and also not saved.
- Type:
glm.mat4 or None
-
shadows = False
Whether to render depthmaps and use them. Defaults to True.
- Type:
bool
-
canvas = None
Target canvas to render. Defaults to None.
- Type:
Canvas
-
depthMapSize = 1024
Depth map texture size. Do not modify after scene has started.
Defaults to 1024.
- Type:
int
-
setupBuffers()[source]
Creates 2D quad VBO and VAO for GUI.
-
property fov
FOV of camera
-
property orthoSize
-
Resize(width, height)[source]
Resizes the viewport on screen size change.
- Parameters:
-
-
getMatrix(transform)[source]
Generates model matrix from transform.
-
get2DMatrix(rectTransform)[source]
Generates model matrix from RectTransform.
-
getViewMat()[source]
Generates view matrix from Transform of camera.
-
UseShader(name)[source]
Sets current shader from name.
-
SetupShader(lights)[source]
-
SetupDepthShader(light)[source]
-
Draw(renderers)[source]
Draw specific renderers, taking into account light positions.
- Parameters:
renderers (List[MeshRenderer]) – Which meshes to render
-
DrawDepth(renderers)[source]
-
RenderDepth(renderers, lights)[source]
-
RenderScene(renderers, lights)[source]
-
Render(renderers, lights)[source]
-
RenderSkybox()[source]
-
Render2D()[source]
Draw all Image2D and Text components in the Camera’s
target canvas.
If the Camera has no Canvas, this function does nothing.
-
Setup2D()[source]
-
Draw2D(renderers)[source]
-
class pyunity.render.Screen[source]
Bases: object
-
width = 800
Type: int
-
height = 500
Type: int
-
size = Vector2(800, 500)
Type: Vector2
-
aspect = 1.6
Type: float