SetViewMode
This function specifies how a particle's facing direction is determined.
Syntax
- SetViewMode(number viewmode=0)
Parameters
- viewmode: - A particle's view mode: 0 = billboard, 1 = lock X-axis, 2 = lock Y-axis, 3 = lock z-axis, 4 = manual facing direction.
Remarks
0: billlboard - In this mode each particle will always face the camera.
1: lock Y-axis - particles will rotate to face the camera in every direction except along the Y-axis.
2: manual facing direction - particles will always face the direction specified by SetFacingDirection
Example
--Create a window
window = Window:Create()
context = Context:Create(window)
world = World:Create()
camera = Camera:Create()
camera:Move(0,-1,-1)
camera:Turn(-45,0,0)
local viewmode = 0
--Create an emitter
emitter = Emitter:Create(100)
emitter:SetViewMode(viewmode) --set the view mode to manual facing direction
emitter:SetFacingDirection(0,1,0) --set particles to always face up
while true do
if window:Closed() or window:KeyHit(Key.Escape) then return false end
Time:Update()
world:Update()
world:Render()
--detect key hits to switch view modes
if (window:KeyHit(Key.Up) and viewmode < 2) then
viewmode = viewmode + 1
emitter:SetViewMode(viewmode)
elseif (window:KeyHit(Key.Down) and viewmode > 0) then
viewmode = viewmode -1
emitter:SetViewMode(viewmode)
end
context:SetBlendMode(Blend.Alpha)
if (emitter:GetViewMode() == 0) then
context:DrawText("View Mode: Billboard. ",2,2)
elseif (emitter:GetViewMode() == 1) then
context:DrawText("View Mode: Lock Y-axis. ",2,2)
elseif (emitter:GetViewMode() == 2) then
context:DrawText("View Mode: Manual Direction. ",2,2)
end
context:Sync()
end