-
Enhancement
-
Resolution: Unresolved
-
P4
-
fx2.0
Currently the scene is rendered in Prism using an immediate mode API where the nodes draw their pieces one at a time using individual calls on a Graphics object to set attributes and then render a single piece.
When talking to an accelerated GPU, each of those individual render calls ends up setting various parameters in the GPU context and then constructing a list of vertices for it to operate on.
In an ideal 3D application, the vertex lists are accumulated with common attributes (with the exception of a few attributes that can vary per vertex - primarily a color) and then sent to the GPU in batches. Between frames of presenting the 3D model, only the vertices that are associated with moving parts of the model are changed and as many of the lists of vertices as possible are reused, possibly cache on the GPU itself. This reduces not only the computation of the vertex lists for each primitive, but also can save transmission time over the system buses.
When talking to an accelerated GPU, each of those individual render calls ends up setting various parameters in the GPU context and then constructing a list of vertices for it to operate on.
In an ideal 3D application, the vertex lists are accumulated with common attributes (with the exception of a few attributes that can vary per vertex - primarily a color) and then sent to the GPU in batches. Between frames of presenting the 3D model, only the vertices that are associated with moving parts of the model are changed and as many of the lists of vertices as possible are reused, possibly cache on the GPU itself. This reduces not only the computation of the vertex lists for each primitive, but also can save transmission time over the system buses.
- blocks
-
JDK-8101353 JavaFX graphics performance improvements
- Closed
- relates to
-
JDK-8104161 Research Retained Mode
- Closed
-
JDK-8090902 Create "CommandBuffer" for storing graphics drawing commands in Prism
- Open