# Best way to render volume

**URL:** <https://discourse.threejs.org/t/best-way-to-render-volume/78306>\
**Category:** Questions\
**Tags:** volume-rendering\
**Created:** [February 18, 2025, 3:54pm UTC](https://discourse.threejs.org/t/best-way-to-render-volume/78306 "2025-02-18T15:54:18Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![yesbird](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.threejs.org/yesbird/32/46097_2.png) [@yesbird](https://discourse.threejs.org/u/yesbird)\
**Post date:** [February 18, 2025, 3:54pm UTC](https://discourse.threejs.org/t/best-way-to-render-volume/78306/1 "2025-02-18T15:54:18Z")

</div>

Greetings !

I am choosing instruments for volume rendering in my next project - _VolView_ and little bit confused while exploring following samples:

1. [webgl\_texture3d](https://threejs.org/examples/?q=3d#webgl_texture3d)
2. [webgl\_texture3d\_partialupdate](https://threejs.org/examples/?q=3d#webgl_texture3d_partialupdate)
3. [webgpu\_rendertarget\_2d-array\_3d](https://threejs.org/examples/?q=3d#webgpu_rendertarget_2d-array_3d)

I see different approaches there - some use _VolumeShader_, some custom “in-code” shader, some _RenderTargetArray_ and _RenderTarget3D_ and I am in doubt what is the best and most promising.

I would like to get maximum performance (assuming WebGPU) and the best quality.  
Also, I am planning to make slices at different angles and apply colormaps.

Could you please assist me to make the right choice ?

---

<div class="post-metadata">

**Author:** ![manthrax](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.threejs.org/manthrax/32/2596_2.png) [@manthrax](https://discourse.threejs.org/u/manthrax)\
**Post date:** [February 18, 2025, 8:14pm UTC](https://discourse.threejs.org/t/best-way-to-render-volume/78306/2 "2025-02-18T20:14:00Z")

</div>

The “right” choice is probably a matter of preference and requirements.

SOTA volumetric rendering is usually achieved with raymarching approaches (your first link), but you can also do something with layered planes and trade some quality for performance.
