<div dir="ltr">Hi Nick,<div> Read the blog, option 2 seems fine to me. Can deferred decals be used for the case of cuts with blood that evolves between frames?</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Oct 2, 2017 at 2:44 PM, Milef, Nicholas Boris <span dir="ltr"><<a href="mailto:milefn@rpi.edu" target="_blank">milefn@rpi.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div>
<div style="direction:ltr;font-family:Tahoma;color:#000000;font-size:10pt">What tradeoffs do you all want for deferred decals? The main issue is which objects get affected by which decals (since a projection volume encompasses the target area). Deferred
decals would be used for various markings such as burn marks, blood, or possibly just environmental details. You can think of them as a sticker.
<div><br>
</div>
<div>Here is a decent overview of the technique and the problem with volume (please read if you're unfamiliar with this topic):</div>
<div><a href="https://mtnphil.wordpress.com/2014/05/24/decals-deferred-rendering/" target="_blank">https://mtnphil.wordpress.com/<wbr>2014/05/24/decals-deferred-<wbr>rendering/</a></div>
<div><br>
</div>
<div>Option 1:</div>
<div>Add a material option to toggle decals on or off for a given mesh. This is the easiest implementation but also the most limited (meshes are either affected by all decals or none).</div>
<div><br>
</div>
<div>Option 2:</div>
<div>Add a mask for up to 8 types (layers) of decals. Each layer would be a property in the material class. You could can put the same type of decal (such as burn marks) on different layers to apply them to different meshes, but you are only limited to 8 layers
total. This takes up 1 byte in the GBuffer. If we use two bytes, we can use up to 16 layers.</div>
<div><br>
</div>
<div>Option 3:</div>
<div>Add a material ID for each mesh in the simulator. Each decal would be assigned to one mesh. This would allow up to 256 unique meshes but unlimited types of decals. This takes up 1 byte in the GBuffer. If we use 2 bytes, then we can use up to 65k unique
meshes. The drawback is that there can be a large amount of drawing/overdraw here (since decals must be drawn multiple times for each compatible material in the scene), which is expensive on both the CPU and GPU side.</div>
<div><br>
</div>
<div>Personally, I'm leaning towards Option 2, but I was wondering what you all thought.</div>
</div>
</div>
<br>______________________________<wbr>_________________<br>
Imstk-developers mailing list<br>
<a href="mailto:Imstk-developers@imstk.org">Imstk-developers@imstk.org</a><br>
<a href="http://public.kitware.com/mailman/listinfo/imstk-developers" rel="noreferrer" target="_blank">http://public.kitware.com/<wbr>mailman/listinfo/imstk-<wbr>developers</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr">Sreekanth Arikatla, Ph.D.,</div><div dir="ltr">Senior R&D Engineer,</div><div dir="ltr"><a href="http://www.kitware.com" style="font-size:12.8px" target="_blank">Kitware, Inc.</a>, Carrboro, NC.<div><br></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div>
</div>