# Candera Engine 3D

#### 2D Composition in 3D using Canvas Objects.

New node types have been added to the 3D scene graph, namely [CanvasSprite](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_canvas_sprite.html) and [CanvasGroup](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_canvas_group.html). Both offer means to realize 2D items in 3D space. These canvas objects are transformable in their local XY plane. [CanvasSprite](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_canvas_sprite.html) reacts on the size of the set texture and offers means to provide a pivot offset, such that rotations or scale is done around this pivot point. With these objects 2D planes containing several 2D elements can be defined, but even be transformed in 3D space. Using an orthographic even pixel exact positioning is possible.

<div class="contents" id="bkmrk-"><div class="contents"><div class="textblock">---

</div></div></div>#### RendererListener Camera Hook

A new hook is defined for [RendererListener](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_renderer_listener.html "A RendererListener defines hooks that are called before or after a Node is rendered.") - [RendererListener::OnCameraPostRender](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_renderer_listener.html#abe297d3569d880cddd3d37ec961fc9ff) that is called after a camera has been rendered.

<div class="contents" id="bkmrk--0"><div class="contents"><div class="textblock">---

</div></div></div>#### Node intersection in Screen Coordinates

An interface has been added to compute whether a node intersects with a pick in screen coordinates - [Math3D::IsPickIntersectingGeometry](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_math3_d.html#a995cc49799841f830cf104addb6e5943).

<div class="contents" id="bkmrk--1"><div class="contents"><div class="textblock">---

</div></div></div>#### Added MemoryPool property to TextureImage

[TextureImage](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_texture_image.html "Abstract base class for Texture images.A texture image mainly encapsulates a texture handle in VRAM a...") class has now a memory pool property which indicates where to store the image data for rendering. This property may be ignored on RenderDevices that only support uploading to VideoRam.

---