diff options
| author | Bryan Galdrikian <[email protected]> | 2017-02-21 12:07:59 -0800 |
|---|---|---|
| committer | Bryan Galdrikian <[email protected]> | 2017-02-21 12:07:59 -0800 |
| commit | 446ce137c6823ba9eff273bdafdaf266287c7c98 (patch) | |
| tree | d20aab3e2ed08d7b3ca71c2f40db6a93ea00c459 /NvBlast/docs/api_docs/files/pageextshaders.html | |
| download | blast-1.0.0-beta.tar.xz blast-1.0.0-beta.zip | |
first commitv1.0.0-beta
Diffstat (limited to 'NvBlast/docs/api_docs/files/pageextshaders.html')
| -rw-r--r-- | NvBlast/docs/api_docs/files/pageextshaders.html | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/NvBlast/docs/api_docs/files/pageextshaders.html b/NvBlast/docs/api_docs/files/pageextshaders.html new file mode 100644 index 0000000..f7b3099 --- /dev/null +++ b/NvBlast/docs/api_docs/files/pageextshaders.html @@ -0,0 +1,48 @@ +<html> + <head> + <title>NVIDIA(R) Blast(R) SDK 1.0 API Reference: Damage Shaders (NvBlastExtShaders)</title> + <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> + <LINK HREF="NVIDIA.css" REL="stylesheet" TYPE="text/css"> + </head> + + <body bgcolor="#FFFFFF"> + <div id="header"> + <hr class="first"> + <img alt="" src="blast_logo.png"> + <br> + <center> + <a class="qindex" href="main.html">Main Page</a> + <!-- <a class="qindex" href="hierarchy.html">Class Hierarchy</a> //--> + <a class="qindex" href="annotated.html">Class List</a> + <a class="qindex" href="functions.html">Class Members</a> + </center> + <hr class="second"> + </div> +<!-- Generated by Doxygen 1.5.8 --> +<div class="contents"> +<h1><a class="anchor" name="pageextshaders">Damage Shaders (NvBlastExtShaders) </a></h1>Blast Extensions provide basic implementations of programs generating fracture commands, the first step in breaking a Blast™ Actor, see <a class="el" href="pagellapi.html#splitting">Damage and Fracturing</a>. These programs come as two shader functions (callbacks) for Actors with a support graph and Actors with just one chunk respectively. The <a class="el" href="struct_nv_blast_damage_program.html">NvBlastDamageProgram</a> containing both shaders can be used for low-level directly (NvBlastActorGenerateFracture) or for TkActor's damage and fracture functions.<p> +<div class="fragment"><pre class="fragment"> <a class="code" href="struct_nv_blast_damage_program.html">NvBlastDamageProgram</a> damageProgram = { <a class="code" href="_nv_blast_ext_damage_shaders_8h.html#4c050e75d4b9ddfcd3e85a620d21e029">NvBlastExtShearGraphShader</a>, <a class="code" href="_nv_blast_ext_damage_shaders_8h.html#1dd2944861a3adaccd62165b952f3440">NvBlastExtShearSubgraphShader</a> }; +</pre></div><p> +The appropriate shader will be called for an Actor being processed, along with the necessary Actor's geometry and program parameters. The parameters (<a class="el" href="struct_nv_blast_program_params.html">NvBlastProgramParams</a>) are set to contain<p> +1. Material, something that describes an Actor properties (e.g. mass, stiffness, fragility) which are not expected to be changed often.<p> +2. Damage description, something that describes a particular damage event (e.g. position, radius and force of explosion).<p> +<div class="fragment"><pre class="fragment"> <a class="code" href="struct_nv_blast_ext_material.html">NvBlastExtMaterial</a> material = { singleChunkThreshold, graphChunkThreshold, bondTangentialThreshold, bondNormalThreshold, damageAttenuation }; + <a class="code" href="struct_nv_blast_ext_radial_damage_desc.html">NvBlastExtRadialDamageDesc</a> damageDesc = { compressive, posX, posY, posZ, minR, maxR }; +</pre></div><p> +When used with TkActor::damage() functions, TkActor will cache the necessary data for deferred processing through TkGroup. This includes accumulating damage requests for the same material and program parameter combination. A default material can be set for a TkFamily that all its Actors uses.<p> +<div class="fragment"><pre class="fragment"> tkGroup->addActor(*tkActor); + tkActor->damage(damageProgram, damageDesc0, <span class="keyword">sizeof</span>(<a class="code" href="struct_nv_blast_ext_radial_damage_desc.html">NvBlastExtRadialDamageDesc</a>), &material); + tkActor->damage(damageProgram, damageDesc1, <span class="keyword">sizeof</span>(<a class="code" href="struct_nv_blast_ext_radial_damage_desc.html">NvBlastExtRadialDamageDesc</a>), &material); + tkGroup->process(); + tkGroup->sync(); +</pre></div><p> +In contrast, the user is responsible for providing all the damage descriptions persisting through the low-level NvBlastActorGenerateFracture call when not using the Tk layer.<p> +<div class="fragment"><pre class="fragment"> <a class="code" href="struct_nv_blast_program_params.html">NvBlastProgramParams</a> programParams = { damageDescs, 2, &material }; + <a class="code" href="_nv_blast_8h.html#6a40c4286de500e8545babfb9c517789">NvBlastActorGenerateFracture</a>(commandBuffers, actor, damageProgram, &programParams, <span class="keyword">nullptr</span>, <span class="keyword">nullptr</span>); +</pre></div> </div> +<!-- start footer part --> +<div class="footer"> +Copyright © 2015-2017 NVIDIA Corporation, 2701 San Tomas Expressway, Santa Clara, CA 95050 U.S.A. All rights reserved. <a href="http://www.nvidia.com ">www.nvidia.com</a> +</div> +</body> +</html> |