| scale# (optional) - internal 3D resolution factor from 0.5 to 2.0; 1.0 (default) |
|
Renders the 3D scene at a different resolution from the window. The window and all 2D drawing stay at full size; only the internal 3D resolution changes, and the result is scaled to the display by the final quality pass. Below 1.0 it is the classic performance lever - 0.75 renders about half the pixels and is often hard to spot in motion, making it ideal for a graphics options slider or for keeping a heavy scene smooth on weaker GPUs. Above 1.0 it supersamples for extra crispness at a real GPU cost. Values outside 0.5 to 2.0 are clamped (with a warning in the diagnostics log), and a non-finite value falls back to 1.0. Changing the scale rebuilds the internal targets and resets TAA history, so treat it as a settings change rather than something to animate per frame. For the full story, see the image-quality guide. See also: AntiAliasMode, FrameLimit, TextureAnisotropy. |
; RenderScale Example
; -------------------
Graphics3D 640,480,0,2
SetBuffer BackBuffer()
camera=CreateCamera()
PositionEntity camera,0,2,-7
RotateEntity camera,10,0,0
light=CreateLight()
RotateEntity light,45,45,0
; A ring of colourful spinning gems; fine edges reveal the scale change
For i=0 To 7
gem=CreateSphere(8)
ScaleEntity gem,0.5,0.8,0.5
PositionEntity gem,Cos(i*45)*3,1.5,2+Sin(i*45)*3
EntityColor gem,255-i*20,80+i*20,120+i*15
Next
hub=CreateCylinder()
ScaleEntity hub,0.6,1.2,0.6
PositionEntity hub,0,1.2,2
EntityColor hub,230,180,60
scale#=1.0
While Not KeyDown(1)
; [ / ] lower or raise the internal 3D resolution (0.5 to 2.0)
If KeyDown(26) And scale>0.5 Then scale=scale-0.005
If KeyDown(27) And scale<2.0 Then scale=scale+0.005
; Render 3D at a fraction of the window size, then rescale
RenderScale scale
; Keep the scene turning so shimmer and softness are visible
TurnEntity hub,0,2,0
; Arrow keys move the camera
If KeyDown(200) Then MoveEntity camera,0,0,0.1
If KeyDown(208) Then MoveEntity camera,0,0,-0.1
If KeyDown(203) Then TurnEntity camera,0,1,0
If KeyDown(205) Then TurnEntity camera,0,-1,0
RenderWorld
Text 0,0,"[ ]: render scale Arrow keys: move camera Esc: exit"
Text 0,20,"RenderScale "+scale
Text 0,40,"Internal 3D resolution: "+Int(640*scale)+"x"+Int(480*scale)
Text 0,60,"Below 1.0 is faster but softer; above 1.0 supersamples"
Flip
Wend
End