lambdacube-engine-0.2.1: 3D rendering engine written entirely in Haskell




data IlluminationStage Source

Categorisation of passes for the purpose of additive lighting



Part of the rendering which occurs without any kind of direct lighting


Part of the rendering which occurs per light


Post-lighting rendering


Not determined

data (Texture t, LinkedGpuProgram lp) => Pass t lp Source




psName :: String

optional name for the pass

psAmbient :: ColourValue
psDiffuse :: ColourValue
psSpecular :: ColourValue
psEmissive :: ColourValue
psShininess :: FloatType
psTracking :: TrackVertexColourType
psSourceBlendFactor :: SceneBlendFactor
psDestBlendFactor :: SceneBlendFactor
psSourceBlendFactorAlpha :: SceneBlendFactor
psDestBlendFactorAlpha :: SceneBlendFactor
psSeparateBlend :: Bool

Used to determine if separate alpha blending should be used for color and alpha channels

psBlendOperation :: SceneBlendOperation
psAlphaBlendOperation :: SceneBlendOperation
psSeparateBlendOperation :: Bool

Determines if we should use separate blending operations for color and alpha channels

psDepthCheck :: Bool
psDepthWrite :: Bool
psDepthFunc :: CompareFunction
psDepthBiasConstant :: FloatType
psDepthBiasSlopeScale :: FloatType
psDepthBiasPerIteration :: FloatType
psColourWrite :: Bool
psAlphaRejectFunc :: CompareFunction
psAlphaRejectVal :: Int
psAlphaToCoverageEnabled :: Bool
psTransparentSorting :: Bool

Transparent depth sorting

psTransparentSortingForced :: Bool

Transparent depth sorting forced

psCullMode :: CullingMode
psManualCullMode :: ManualCullingMode
psLightingEnabled :: Bool

Lighting enabled?

psMaxSimultaneousLights :: Int

Max simultaneous lights

psStartLight :: Int

Starting light index

psLightsPerIteration :: Maybe Int

Run this pass once per light? Iterate per how many lights?

psOnlyLightType :: Maybe LightTypes

Should it only be run for a certain light type?

psShadeOptions :: ShadeOptions

Shading options

psPolygonMode :: PolygonMode

Polygon mode

psNormaliseNormals :: Bool
psPolygonModeOverrideable :: Bool
psFogOverride :: Bool
psFogMode :: FogMode
psFogColour :: ColourValue
psFogStart :: FloatType
psFogEnd :: FloatType
psFogDensity :: FloatType
psTextureUnitStates :: [TextureUnitState t]
psVertexProgramUsage :: Maybe GpuProgramUsage

Vertex program details

psFragmentProgramUsage :: Maybe GpuProgramUsage

Fragment program details

psGeometryProgramUsage :: Maybe GpuProgramUsage

Geometry program details

psLinkedGpuProgram :: Maybe lp
psPassIterationCount :: Int

number of pass iterations to perform

psPointSize :: FloatType

point size, applies when not using per-vertex point size

psPointMinSize :: FloatType
psPointMaxSize :: FloatType
psPointSpritesEnabled :: Bool
psPointAttenuationEnabled :: Bool
psPointAttenuationCoeffs :: FloatType3

constant, linear, quadratic coeffs

psLightScissoring :: Bool

Scissoring for the light?

psLightClipPlanes :: Bool

User clip planes for light?

psIlluminationStage :: IlluminationStage

Illumination stage?


(Texture t, LinkedGpuProgram lp) => Eq (Pass t lp) 
(Texture t, LinkedGpuProgram lp) => Ord (Pass t lp)