diff options
| author | Bryan Galdrikian <[email protected]> | 2017-10-24 15:25:02 -0700 |
|---|---|---|
| committer | Bryan Galdrikian <[email protected]> | 2017-10-24 15:25:02 -0700 |
| commit | b0c11962f6012430da3bcaa2727288046b33d648 (patch) | |
| tree | cf13338fa4fd7072badf64f751f94abeeb437003 /sdk/extensions/physx/source/physics/NvBlastExtImpactDamageManager.cpp | |
| parent | linux build fix - all configs (diff) | |
| download | blast-b0c11962f6012430da3bcaa2727288046b33d648.tar.xz blast-b0c11962f6012430da3bcaa2727288046b33d648.zip | |
Changes for 1.1.1
See README.md
Diffstat (limited to 'sdk/extensions/physx/source/physics/NvBlastExtImpactDamageManager.cpp')
| -rw-r--r-- | sdk/extensions/physx/source/physics/NvBlastExtImpactDamageManager.cpp | 45 |
1 files changed, 21 insertions, 24 deletions
diff --git a/sdk/extensions/physx/source/physics/NvBlastExtImpactDamageManager.cpp b/sdk/extensions/physx/source/physics/NvBlastExtImpactDamageManager.cpp index b7831cb..ec0cf20 100644 --- a/sdk/extensions/physx/source/physics/NvBlastExtImpactDamageManager.cpp +++ b/sdk/extensions/physx/source/physics/NvBlastExtImpactDamageManager.cpp @@ -30,6 +30,7 @@ #include "NvBlastExtPxManager.h" #include "NvBlastExtPxFamily.h" #include "NvBlastExtPxActor.h" +#include "NvBlastExtPxAsset.h" #include "NvBlastExtPxListener.h" #include "NvBlastAssert.h" @@ -365,13 +366,13 @@ void ExtImpactDamageManagerImpl::damageActor(ExtPxActor* actor, PxShape* /*shape const float damage = m_settings.hardness > 0.f ? force.magnitude() / m_settings.hardness : 0.f; - const void* material = actor->getTkActor().getFamily().getMaterial(); + const NvBlastExtMaterial* material = actor->getFamily().getMaterial(); if (!material) { return; } - float normalizedDamage = reinterpret_cast<const NvBlastExtMaterial*>(material)->getNormalizedDamage(damage); + float normalizedDamage = material->getNormalizedDamage(damage); if (normalizedDamage == 0.f || normalizedDamage < m_settings.damageThresholdMin) { return; @@ -382,24 +383,22 @@ void ExtImpactDamageManagerImpl::damageActor(ExtPxActor* actor, PxShape* /*shape const float minDistance = m_settings.damageRadiusMax * normalizedDamage; const float maxDistance = minDistance * PxClamp<float>(m_settings.damageFalloffRadiusFactor, 1, 32); - NvBlastProgramParams programParams; - programParams.damageDescCount = 1; - programParams.material = nullptr; + NvBlastExtProgramParams programParams(nullptr); + programParams.material = material; + programParams.accelerator = actor->getFamily().getPxAsset().getAccelerator(); NvBlastDamageProgram program; if (m_settings.shearDamage) { - NvBlastExtShearDamageDesc desc[] = { - { - normalizedDamage, - { normal[0], normal[1], normal[2] }, - { position[0], position[1], position[2] }, - minDistance, - maxDistance - } + NvBlastExtShearDamageDesc desc = { + normalizedDamage, + { normal[0], normal[1], normal[2] }, + { position[0], position[1], position[2] }, + minDistance, + maxDistance }; - programParams.damageDescBuffer = &desc; + programParams.damageDesc = &desc; program.graphShaderFunction = NvBlastExtShearGraphShader; program.subgraphShaderFunction = NvBlastExtShearSubgraphShader; @@ -410,19 +409,17 @@ void ExtImpactDamageManagerImpl::damageActor(ExtPxActor* actor, PxShape* /*shape } else { - NvBlastExtRadialDamageDesc desc[] = { - { - normalizedDamage, - { position[0], position[1], position[2] }, - minDistance, - maxDistance - } + NvBlastExtImpactSpreadDamageDesc desc = { + normalizedDamage, + { position[0], position[1], position[2] }, + minDistance, + maxDistance }; - programParams.damageDescBuffer = &desc; + programParams.damageDesc = &desc; - program.graphShaderFunction = NvBlastExtFalloffGraphShader; - program.subgraphShaderFunction = NvBlastExtFalloffSubgraphShader; + program.graphShaderFunction = NvBlastExtImpactSpreadGraphShader; + program.subgraphShaderFunction = NvBlastExtImpactSpreadSubgraphShader; NvBlastFractureBuffers fractureEvents = m_fractureBuffers; actor->getTkActor().generateFracture(&fractureEvents, program, &programParams); |