Lou Montana/Sandbox – User
Lou Montana (talk | contribs) m (Simulation vs Render Time Scope page draft) |
Lou Montana (talk | contribs) m (Adding TKOH, moving video link, rephrasing) |
||
Line 3: | Line 3: | ||
{{SideTOC}} | {{SideTOC}} | ||
{{GVI|arma2oa|1.60|Category}} {{GVI|arma3|1.00|Category}} | {{GVI|arma2oa|1.60|Category}} {{GVI|TKOH|1.00|Category}} {{GVI|arma3|1.00|Category}} | ||
== Definitions == | == Definitions == | ||
Line 10: | Line 10: | ||
'''Simulation Time Scope''' is updated on a lower frequency to save performance the more distance between the unit and the camera the lower the refresh frequency will be. | '''Simulation Time Scope''' is updated on a lower frequency to save performance the more distance between the unit and the camera the lower the refresh frequency will be. | ||
{{cn}} | {{cn}} | ||
=== Render Time Scope === | === Render Time Scope === | ||
Line 17: | Line 16: | ||
The position of the unit is interpolated depending on its speed and movement direction. | The position of the unit is interpolated depending on its speed and movement direction. | ||
Due to interpolation the position might not be accurate, but it's updated frequently, resulting in a smooth motion. | Due to interpolation the position might not be accurate, but it's updated frequently, resulting in a smooth motion. | ||
Usually, '''Render Time Scope''' should be used when something is visible to the player. | Usually, '''Render Time Scope''' should be used when something is visible to the player. | ||
{{cn}} | {{cn}} | ||
Line 29: | Line 28: | ||
* For visual (e.g HUD-related) operations, use *visual [[:Category:Render Time Scope Scripting Commands|Render Time Scope scripting commands]] (e.g [[getPosATLVisual]]) | * For visual (e.g HUD-related) operations, use *visual [[:Category:Render Time Scope Scripting Commands|Render Time Scope scripting commands]] (e.g [[getPosATLVisual]]) | ||
* "Normal" commands (e.g [[getPosATL]]) are to be used if the position isn't updated frequently and the effect is not visible to players. | * "Normal" commands (e.g [[getPosATL]]) are to be used if the position isn't updated frequently and the effect is not visible to players. | ||
[https://www.youtube.com/watch?v=6xUw0K292sw Video Showcase] | |||
== Before Simulation and Render separation == | == Before Simulation and Render separation == | ||
From {{ofp}} to {{arma2oa}} v1.59, | From {{ofp}} to {{arma2oa}} v1.59, the '''simulation''' first updated the world's state (units position) ''then'' the visual '''rendering''' was done.<br> | ||
Sequencing these operations | Sequencing these operations worked fine only in non-intensive scenarios; as soon as the CPU reached its limits, the simulation frequency was lowered in order to maintain acceptable FPS, resulting in units visually "jumping". | ||
Line 40: | Line 41: | ||
* [https://www.bohemia.net/blog/experimental-betas-interpolating-the-future Experimental betas - Interpolating the future] blog article | * [https://www.bohemia.net/blog/experimental-betas-interpolating-the-future Experimental betas - Interpolating the future] blog article | ||
* [https://forums.bohemia.net/forums/topic/151099-scripting-discussion-dev-branch/?page=21&tab=comments#comment-2720342 Sniperwolf572 forum post explanation | * [https://forums.bohemia.net/forums/topic/151099-scripting-discussion-dev-branch/?page=21&tab=comments#comment-2720342 Sniperwolf572 forum post] explanation |
Revision as of 22:13, 14 August 2019
Template:SideTOC 1.60 1.00 1.00
Definitions
Simulation Time Scope
Simulation Time Scope is updated on a lower frequency to save performance the more distance between the unit and the camera the lower the refresh frequency will be. [citation needed]
Render Time Scope
Render Time Scope is updated on a very high frequency (presumably on each frame). The position of the unit is interpolated depending on its speed and movement direction. Due to interpolation the position might not be accurate, but it's updated frequently, resulting in a smooth motion. Usually, Render Time Scope should be used when something is visible to the player. [citation needed]
Simulation vs Render
Simulation and Render cycles are separated since Arma 2: Operation Arrowhead v1.60. This means that any object has now "two" positions: the computed one (simulation), and the visual one (render).
- For visual (e.g HUD-related) operations, use *visual Render Time Scope scripting commands (e.g getPosATLVisual)
- "Normal" commands (e.g getPosATL) are to be used if the position isn't updated frequently and the effect is not visible to players.
Before Simulation and Render separation
From Operation Flashpoint to Arma 2: Operation Arrowhead v1.59, the simulation first updated the world's state (units position) then the visual rendering was done.
Sequencing these operations worked fine only in non-intensive scenarios; as soon as the CPU reached its limits, the simulation frequency was lowered in order to maintain acceptable FPS, resulting in units visually "jumping".
See Also
- Experimental betas - Interpolating the future blog article
- Sniperwolf572 forum post explanation