I have not seen an answer here that explains this. Many transformations can be performed by calculating each of the div and its parameters using a complex set of validations. However, if you use the 3D function, each of the 2D elements that you have is treated as 3D elements, and we can perform the matrix transformation on these elements on the fly. However, most of the elements are "technically" already hardware accelerated, because they all use a graphics processor. But 3D transforms work directly on cached versions of each of these 2D renderings (or cached versions of div ) and directly use matrix transformations on them (which are FP vectorized and parallel maths).
It is important to note that 3D transforms ONLY make changes to functions on a cached 2D div (in other words, a div is already a rendered image). Thus, things, such as changing the width and color of the border, are no longer "3D" to speak dimly. If you think about it, changing the width of the borders requires you to reload the div , because so does recache so that 3D transforms can be applied.
Hope this makes sense and let me know if you have more questions.
To answer your question, translate3d: 0x 0y 0z will not do anything, since the transformations work directly with the texture, which is formed by running div vertices in the GPU shader. This shader resource is now cached, and the matrix will be applied when drawing to the frame buffer. Thus, in principle, there is no benefit from this.
This is how the browser works inside.
Step 1: Input for Analysis
<div style = "position:absolute;left:0;right:0;bottom:0;top:0;"></div>
Step 2. Development of a composite layer
CompositeLayer compLayer = new CompositeLayer(); compLayer.setPosition(0, 0, 0, 0); compLayer.setPositioning(ABSOLUTE);
Step 3: Create a Composite Layer
for (CompositeLayer compLayer : allCompositeLayers){ // Create and set cacheTexture as active target Texture2D cacheTexture = new Texture2D(); cacheTexture.setActive(); // Draw to cachedTexture Pipeline.renderVertices(compLayer.getVertices()); Pipeline.setTexture(compLayer.getBackground()); Pipeline.drawIndexed(compLayer.getVertexCount()); // Set the framebuffer as active target frameBuffer.setActive(); // Render to framebuffer from texture and **applying transformMatrix** Pipeline.renderFromCache(cacheTexture, transformMatrix); }