Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
nextAPEX1.3ReleaseNotes»
NVIDIA(R)APEX(TM)SDKReleaseNotes(APEXSDKhasbeendeprecated)Note:APEXSDKhasbeendeprecated
Contents:
APEX1.4.1-ReleaseNotes(APEXhasbeendeprecated)InstallingAPEXNewin1.4Newin1.3.3Newin1.3.2Newin1.3.1Newin1.3Newin1.2.4Newin1.2.3Newin1.2.2Newin1.2.1Newin1.2Newin1.1Newin1.0
APEXClothingReleaseNotesAPEXClothing1.3.3APEXClothing1.3.2APEXClothing1.3.1APEXClothing1.3APEXClothing1.2.4APEXClothing1.2.3APEXClothing1.2.2APEXClothing1.2.1APEXClothing1.2APEXClothing1.1APEXClothing1.0Beta
APEXParticlesReleaseNotesAPEXParticles1.4APEXParticles1.3.3
APEXParticles1.3.2APEXParticles1.3.1APEXParticles1.3APEXParticles1.2.4APEXParticles1.2.3APEXParticles1.2.2APEXParticles1.2.1APEXParticles1.2
APEXDestructionReleaseNotesAPEXDestruction1.3.4APEXDestruction1.3.3APEXDestruction1.3.2APEXDestruction1.3.1APEXDestruction1.3APEXDestruction1.2.4APEXDestruction1.2.3APEXDestruction1.2.2APEXDestruction1.2.1APEXDestruction1.2APEXDestruction1.1APEXDestruction1.0Beta
nextAPEX1.3ReleaseNotes»©Copyright2012-2017,NVIDIACorporation,AllRightsReserved.CreatedusingSphinx1.0.2.
nextprevious|APEX1.3ReleaseNotes»
APEX1.4.1-ReleaseNotes(APEXhasbeendeprecated)Note:APEXSDKhasbeendeprecated
InstallingAPEX
WindowsRequirements:
1. VisualStudio2010,2012,2013or2015.
2. Microsoft DirectX SDK June 2010 or later (to build the WindowsAPEXsamples)
1. TheDirectX includepath shouldbeset inVisualStudio inVC++DirectoriestobuildtheWindowssamples
2. The DirectX End-User Runtime Web Installer(dxwebsetup.exe)canbedownloadedfromMicrosoft if theprebuiltAPEXsamplesdonotrunbecausetheycannotfindtheJune2010DXruntimes.
3. GraphicsrenderermustsupportatleastOpenGLversion1.5toruntheWindowsAPEXsamplesinOpenGLmode
APEXforPhysX3.4Requirements
1. PhysX SDK for 3.4 for Windows (the APEX source distributionrequiresthePhysXsourcedistribution)
SDKZipDistributions:
Thesourceandbinarydistributionscome incompressedzipdistributions.Thesourcedistributiondoesnotcontainsamples,justthecoreAPEXSDK.
Note: TobuildtheAPEXprojects,thePhysXSDKpathinthenxpath.vspropsfilesmustbemodified.TheUpdatePhysXPaths.vbsscriptisprovidedforthispurpose.Itwillmodifythenxpath.vspropsfilesunderthecompilerfolders.SimilarAndroiddistributionsetupisdonebysetting
upMakefilewithoutusingthisscript.The3.xPhysXpathshouldcontainthefolderlocation(absoluteorrelative)thatcontainsthe“Include”directory.
Note: TheAPEXSDKsourcebuildrequiresthePhysX3.4sourcedistribution.
Newin1.4
General
RefactoredpublicAPInamingconvensionsRemovedglobalLODsupportRefactoredAPEXsamplesandaddedAPEXsnippetsRemoved PhysX 2.8.4 support. Added build configuration withoutPhysXlinkingforClothingmodule
Optimizations
Fixes
KnownIssues
Newin1.3.3
General
The APEX release build configurations for x86 and x64 now alsocontainauthoringcode.Onotherplatformsauthoringisstillremovedforreleasebuilds.WindowsAPEXsamplesnowrenderusingD3D11bydefault.Usethe-d3d9commandlineoptiontorenderusingD3D9instead.
Optimizations
Fixes
KnownIssues
PVDsupportmaynotbeworkingonAndroid.
Newin1.3.2
General
AddedNVTXprofilingsupportfornon-releasebuilds.Tracescanbecaptured using Parallel Nsight Analysis Tools. NVTX is supportedonlyforWindowsandAndroid.
Optimizations
Added ability to change render resource lock behavior or disablelockingaltogether,toimproveperformance.Thesettingispermodule.SeeNxModule::setRenderLockModeandNxApexRenderLockMode.Addedabilitytodisablepotentiallyexpensivestatcollectionifit’snotneeded.SeeNxApexSDK::setEnableApexStats.
Fixes
FixedcrashifapplicationcreatesAPEXSDKafteralreadyconnectingtoPVD.
KnownIssues
PVDsupportmaynotbeworkingonAndroid.
Newin1.3.1
General
AddedVS2012supportforsourcedistributionswithPhysX3.x.Assertionsarenowenabledinthecheckedconfiguration.Added NxApexActor::setEnableDebugVisualization to selectivelydisabledebugvisualizationonparticularactors.The NxUserRenderResourceManager’s surface buffer create andrelease virtual methods must be implemented by the user. They areonlyusedbyparticularturbulencefeatures,soifturbulenceisn’tbeingusedtheimplementationcanbeempty.StartingwithNVIDIAR302drivers,applicationdeveloperscandirecttheOptimusdriveratruntimetousetheHighPerformanceGraphicstorenderanyapplication-eventhoseapplicationsforwhichthereisnoexistingapplicationprofile.TheAPEXsamplesnowmakesuseofthis“NvOptimusEnablement” feature to enable High PerformanceGraphicsbydefault.DebuginfoaddedtoallPS4buildsexceptreleasebuilds.Android sample builds now generate an APK. This requires someextradefines for JavaandAnt.See theAndroidexamples sectionofthesampledocumentationfordetails.
Fixes
FixedrareNamedResourceProviderfailuretofindresource.Using allocViewMatrix(ViewMatrixType::USER_CUSTOMIZED)nowworks.CleanedupseveralPS4compilerwarnings.
KnownIssues
PVDsupportmaynotbeworkingonAndroid.
Newin1.3
General
Thelegacymodulesareallcombinedinonemodule,APEX_Legacy.Theparticlemodulesareallcombinedinonemodule,APEX_Particles(withtheexceptionofTurbulence).TheWindmodulewasremoved.The NxUserRenderBoneBufferDesc::maxBones member will nowreflect the actual max bones specified inNxUserRenderResourceManager::getMaxBonesForMaterial(). Theactual number of bones used will be sent in theNxUserRenderBoneBuffer::writeBuffer() numBones parameter. Inprevious APEX versions, NxUserRenderBoneBufferDesc::maxBonesreflectedtheminimum(numBones,maxBones).APEX’s output stream will automatically be sent to PVDwhen theapplicationisconnectedtoPVD.TheoutputStreammemberoftheNxApexSDKDeschasbeenremovedwhenusingPhysX3.x.APEXwillautomaticallyusethesameoutputstreamasPhysX.
KnownIssues
PVDsupportmaynotbeworkingonAndroid.
Newin1.2.4
General
EditorWidgetsheaderfilesaddedtobinarydistributions.Addedmoreassetpreviewsforconsistency.PS3gccsupporthasbeendeprecatedinAPEX1.2.4infavorofSNC.Thegccversionisstillincludedbutnotsupported.Fixedsomeallocationsthatwerenotgoingthroughtheuser-suppliedallocator.
KnownIssues
There are shadow and flickering issues when running the APEXsamplesusingtheDirectX11renderer(–d3d11).SomekeyandbuttonmappingsintheAPEXsamplesareincompleteonPS3andXbox360.TheremaybeissuesconnectingtoPVDfromconsoleswiththePhysX2.8.4buildofAPEX.
Newin1.2.3
General
NxResourceProviderisnowcase-insensitivebydefault.Togettheoldcase-sensitive behavior, set resourceProviderIsCaseSensitive true intheNxApexSDKDesc.Fixedissueswithre-entrantreadlocksdescribedbelow.GPUrigidbodiesarenolongersupportedonpre-Fermihardware.
KnownIssues
There are shadow and flickering issues when running the APEXsamplesusingtheDirectX11renderer(–d3d11).SomekeyandbuttonmappingsintheAPEXsamplesareincompleteonPS3andXbox360.TheremaybeissuesconnectingtoPVDfromconsoleswiththePhysX2.8.4buildofAPEX.
Newin1.2.2
General
APEXrequirestheuseofthePhysX3.xscenemultiple-reader-single-writerlocktoaccessbothAPEXandPhysXsceneobjectswhenusingthe PxSceneFlag::eREQUIRE_RW_LOCK flag. This allows theapplication using APEX to access PhysX objects from multiplethreads.Formoreinformation,seethe“SceneLocking”sectionofthe“DataAccessandBuffering”PhysX3.xdocumentation.(SeeKnownIssuesforlimitationswhenusingthislock)
KnownIssues
There are shadow and flickering issues when running the APEXsamplesusingtheDirectX11renderer(–d3d11).As of PhysX 3.2.2 the lock offered by the PhysX scene does notsupport re-entrant read locks. This is currently a problem if theapplicationattemptstousetheAPEXactororassetAPIswhileAPEXandPhysXare simulating (for instance, raycasting against anAPEXDestructible actor using NxDestructibleActor::raycast). This will beaddressedinafutureversionofAPEX.SomekeyandbuttonmappingsintheAPEXsamplesareincompleteonPS3andXbox360.TheremaybeissuesconnectingtoPVDfromconsoleswiththePhysX2.8.4buildofAPEX.
Newin1.2.1
General
NxApexSphereShape getRadius/setRadius use PxF32 instead ofPxVec3torepresenttheradius.
KnownIssues
SomekeyandbuttonmappingsintheAPEXsamplesareincompleteonPS3andXbox360.TheremaybeissuesconnectingtoPVDfromconsoleswiththePhysX2.8.4buildofAPEX.
Newin1.2
VisualStudio2010Support
BoththeAPEXSDKsourceandsampleprojectsaredistributedsolelyasVisualStudio2010solutions
NxParameterized
AddedAndroidARMtarget.Bettererrorcheckinginxmlserializer.UnifiedbehaviourofinitParamRef()andsetParamRef().
RenderMeshAsset
Tangent support the float4 format now (making bitangentsunnecessary)
APEXForceField
Existingforcefieldmodulerenamedtofieldboundary.NewforcefieldmodulewhichworkswithAPEXParticlesandPhysX3.xobjects.
General
Added an optional completionTask to NxApexScene::simulate thatwillbecalledwhenfetchResultsisreadytobecalled.The‘pxtask_cuda’DLL,whichcontainstheCUDAContextManagerand associated CUDA PxTask functionality, was renamed‘PhysX3Gpu’.APEXnolongersupportsusingapexuser.dlltooverridethefilestreamreturnedfromNxApexSDK::createStream.
APEXstatsarereportedinmillisecondsinsteadofseconds.Thiswasachange done very late in the 1.1 product cycle, so when upgradingfromanearly1.1thisisstillnewin1.2.NxApexScene::acquirePhysXLock() is now available so that bothAPEX and the application may access the PhysX 3.2 scene duringsimulationwithoutperformingconcurrentwriteoperations.PhysX3.2allows“multiplereader/singlewriter”access,butthishasnotyetbeenimplementedwithinAPEX.NxApexScene::simulate() has a new parameter called‘scratchMemBlock’,whichmaybeusedbyPhysX3.2for temporarydataduringsimulation.TheWindandExplosionmodulesaredeprecatedandmayberemovedfromafutureAPEXrelease.TheydonotsupportPhysX3.2.PS3gccsupportisdeprecatedinAPEXPS3sourcedistributions.AllPS3gccsupportmayberemovedfromafutureAPEXreleaseinfavorofSNC.
KnownIssues
SomekeyandbuttonmappingsintheAPEXsamplesareincompleteonPS3andXbox360.TheremaybeissuesconnectingtoPVDfromconsoleswiththePhysX2.8.4buildofAPEX.
Newin1.1
NxParameterized
NewmethodInterface::clone.Handleswhichareconstructed fromconst Interfacesdonot allow tochangethoseInterfacesviasetParamXxx.GenericreferencevisitorNxParameterized::getReferencesStreamednon-inplacebinarydeserializationFixedhandlingofdefaultValueinstructsFixeddetectionofhinttypesAutomatedversioningoflegacyclassesCustomizableorderoflegacyobjectsupgradeinsteadoffixedbottom-upCustomalignmentsofstructfieldsParamToolcannowprintsummaryoffilecontents
Serialization
ParamTooldoesnotsupportlegacyassetformatsanymoreChangedsomeerrorcodes
RenderMeshAsset
setOverrideMaterialwasaddedtoallowswitchingofmaterialdirectlyatruntime.Debugrenderingvorvertexnormalsandtangents.
UseofCuda4.2
Necessaryforsupportinglatesthardware.
Newin1.0
UseofCuda3.0
Thisallowsusinginterop
UseofanewFoundation(Pxprefix)
Nomore3x4matrix,replacedbyatrue4x4columnwisematrix.
Serialization
Apex 0.9 binary serialization (.aca, .pda, .arm files) are deprecated.Codetoserializeassetstotheseoldformatshasbeenremoved.Codeto read these old formats is still in place but also deprecated. Itwilllikelyberemovedfor1.1.As a replacementwe are usingNxParameterized objects that can beserializedtoeitherxml(.apx)orbinary(.apb)files,wherebinaryfilescanbeoptimizedforspecificplatforms.Renamed NxParameterized::NxSerialiser toNxParameterized::Serializer
Rendermeshasset
Theauthoringpipelinewasrevised.Each vertex buffer semantic can now use a wide range of possibleformats.AddedcompressedrenderdataformatslikeBYTE_UNORM4etc.Changestoinstancebuffersemanticsandformats:removedoldPOSEformatwhichusedMat34,andnowuseROTATION_SCALE(Mat33)andPOSITION (Vec3) in its place.Removedunused instancebuffersemantics.Opaquemeshescanreplacerendermeshassets.AnOpaquemeshisa
voidpointer toauser implemented rendermesh thatAPEXdoesnotknow or understand about. It will still issue render calls using the(opaque)voidpointer.
NxModule
Generic module generation: Get rid of the various descriptors forModulesandunifiythemasparameterizedobjects.
NxApexAsset
added releaseAndReturnNxParameterizedInterface() which allowsreuseoftheparameterizedobjectafterobjectdestruction.
NxApexRenderable
removed lod parameter from dispatchRenderResource method. Allmodulesthatsupport
NxApexScene
added finalstep to NxApexScene::simulate() indicating that manualsubsteppingisusedandthisisthelastsubstep.
DebugRendering
RemovedalldebugrenderingfromNxApexSDKobject.Addedparameterizedobjectstohandledebugrenderingconfigurationfortheframeworkandeachmoduleseparately.Changedcodetosetuptheviewandprojectionmatrix.Parameterizedinterfacetocustomizedebugrenderingcolors.
nextprevious|APEX1.3ReleaseNotes»
©Copyright2012-2017,NVIDIACorporation,AllRightsReserved.CreatedusingSphinx1.0.2.
nextprevious|APEX1.3ReleaseNotes»
APEXClothingReleaseNotes
APEXClothing1.3.3
NewFeatures
Removed
Optimizations
Fixes
Knownissues
IfasyncFetchResultsisfalse,theapplicationmusthavemorethanoneworkerthreadtoavoidthepossiblityofdeadlock.TheRecomputeSubmeshesvisualizationflagisnotfunctional.ItisnotdeterministicwhetherthenewortheoldresultisreturnedinacquireRenderProxy on NxClothingActor, if it is called betweensimulateandfetchResults,whenrunningwithPhysX3.x.
APEXClothing1.3.2
NewFeatures
It is now safe to call updateRenderResourceson the renderproxy inparallel,forexampleintherenderthread,iftheAPEXSDKparameter‘renderMeshActorLoadMaterialsLazily’issettofalse.Addedsupportofpartialcustomphysicalmeshes.
Removed
PhysicalLODisdeprecated.Willberemovednextversion.
Optimizations
ReducetheamountofdatasenttoPVDwhenclothingisinascene.
Fixes
FixedfrictionforGPUclothing.Fixaraceconditionwhenrunningseveralclothingscenesinparallel.Fixedclothingrenderproxy:nowalwaysreturnoldresultbeforefetchhasbeencalled.Fixedself-collisionjitteringonscaleddownactors:scalerestpositions.Fixeddebugrenderingwhenscaled.Fixedcrashinclothcooker.Fixed initialization pose of clothing collisions when clothing actoruseslocalspacesimulation.Fixed crash when a clothing actor with a NxClothingTriangleMeshswitchesLoD.Fixedscalingofclothcollisionplanes.
Knownissues
IfasyncFetchResultsisfalse,theapplicationmusthavemorethanoneworkerthreadtoavoidthepossiblityofdeadlock.TheRecomputeSubmeshesvisualizationflagisnotfunctional.ItisnotdeterministicwhetherthenewortheoldresultisreturnedinacquireRenderProxy on NxClothingActor, if it is called betweensimulateandfetchResults,whenrunningwithPhysX3.x.
APEXClothing1.3.1
NewFeatures
AddedNxClothingActor::getSimulationVelocities()ClothingTool: Some names were changed to match DCC pluginnamingconventions.Clothing triangle collision debug rendering: render ignored trianglesred.Clamp to 500 collision triangles on GPU to avoid hitting sharedmemorylimit.Added API to add and remove triangles from anNxClothingTriangleMeshatruntime.Addedfrictiontoconvexcollisionsagainstcloth.No longer deprecated: updateMaxDistanceScale, getPose, setWind,setMaxDistanceBlendTime, getMaxDistanceBlendTime,setLODWeights
Removed
RemovedunusedAPINxClothingUserRecompute.UnusedzeroStretchStiffnessparameterhasbeenremoved.
Fixes
Fixed incorrect scaling inNxClothingAssetAuthoring::applyTransformation.Fixed infinities generated inNxClothingAssetAuthoring::applyTransformation.Fixedbugthatcouldcauseclothingmaterialtobeseteveryframe.Fixedraceconditionwhencreating/deletingclothsinparallel.NxClothingActor methods getSimulationPositions andgetSimulationNormals now block when asyncFetchResults is set to
true.Fixed crash when calling releaseGraphicalData on a clothing asset(appliesifapplicationdoesitsownskinning)Fixeda3xclothingcookercrash.FixedabugwhereAPEXcouldwakefrozencloth,causingAPEXtooutputa“Clothhasnotstayedstatic”message.Fixed an issue when using multiple GPU dispatchers with GPUclothing.
Knownissues
IfasyncFetchResultsisfalse,theapplicationmusthavemorethanoneworkerthreadtoavoidthepossiblityofdeadlock.TheRecomputeSubmeshesandRecomputeVerticesvisualizationflagsarenotfunctional.ItisnotdeterministicwhetherthenewortheoldresultisreturnedinacquireRenderProxy on NxClothingActor, if it is called betweensimulateandfetchResults,whenrunningwithPhysX3.x.
APEXClothing1.3
NewFeatures
New render API: NxClothingRenderProxy to allow easier renderingwithrenderthread(bufferedrenderdata)AddedPVDobjectdebuggingsupportforclothing.Visualization of clothing in PVD is possible by connecting to PVDwith object debugging enabled, and then enabling “Constraints”visualizationinthePVDPreferences.
Fixes
ClothingGPUmemoryusagenowincludedwith therestof theheapstatsfromtheCudaMemoryManager.ChangedasyncFetchResultstotruebydefaulttoimproveperformanceinmanycasesandavoiddeadlock.Fixed debug visualization of the PhysX 3x clothing materialparameters. Added visualization of compressionRange andstretchRangeparametersandlengthandcross-sectionfibers.
Knownissues
IfasyncFetchResultsisfalse,theapplicationmusthavemorethanoneworkerthreadtoavoidthepossiblityofdeadlock.TheRecomputeSubmeshesandRecomputeVerticesvisualizationflagsarenotfunctional.
APEXClothing1.2.4
Fixes
Fixedissueswithteleportandreset.Fixedacrashintangentcomputations.Fixed an issue where tangent results were different for skinnedtangents.
KnownIssues
Summerdresssample(SimpleClothingscene3)behavesdifferentlyontheGPUcomparedtotheCPU.
APEXClothing1.2.3
NewFeatures
Added solver iteration count toVISUALIZE_CLOTHING_SOLVER_MODEdebugrendering.
Fixes
Fixedanissuewithclothingsimulationwhensimulate(0)iscalled.Fixedabugwithnormalsforthecasewhereassetshaveasignificantamountofmesh-meshskinnedverticesFixedasimulationbugwherecollisionfailedforverticesclosetotheclothboundsFixed a race condition when a lot of actors of the same asset areswitchedonandoff(manuallyorbylod)
Removed
Removed support for the embedded 3x clothing solver on pre-FermiGPUs.
APEXClothing1.2.2
NewFeatures
New ClothingMeshSkinningMap API to get mesh skinninginformation,soitcanbedoneintheapplication.NewAPItoaddcollisionobjectstoaclothingactor.Thiscanbeusedtoimplementcollisionwithworldobjects.
APEXClothing1.2.1
NewFeatures
Supportforconvexcollisionaddedto3xclothingsolver.Limitation: only a total of 32 planes per clothing actor issupported.
Self collision parameters moved to the ClothingMaterialLibraryNxParameterized interface. RemovedNxClothingAssetAuthoring::setSimulationSelfcollision() andNxClothingAssetAuthoring::setSimulationSelfcollisionThickness().
Fixes
Fixed a Clothing Tool issue where the “Generate Tangent Space”button could generate several warning dialogs for certain olderclothingassets.
KnownIssues
Running multiple NxApexScenes simultaneously is only supportedwith the 3x solver. The 2.8 solver can generate writelock NxSceneaccessfailures.The new 3x cloth solver does not send debug visualization data toPhysXVisualDebugger.GPUmemoryallocatedbythe3xclothingsolverisnotreportedintheheapstatsfromtheCudaMemoryManager.
APEXClothing1.2
NewFeatures
SupportforPhysX3xclothsolver.EvenbuildswithPhysX2.8.xwillbeabletorunthenewsolveriftheClothingPhysX3moduleispresent(willbeautoloaded).Removedbitangentsemanticforrendering.Allrendereddatanowusesfloat4 for the tangentsemantic, tangent.wbeing thesignof thecrossproductofnormalandtangent.Local space simulation. The user can either chose a local space orspecifyabone in thehierarchy towhich the simulationwillbedonelocally.Tapered capsules as collision volumes. This will only work withPhysX3xsolver.Velocity shader can takepositions andvelocities now.Velocities canbemodifiedbytheshader.Added several PhysX 3x exclusive clothing material parameters:Compression&strechingstiffnessforstretching,bendingandshearingconstraints, inertia scale& drag (for localspace sim),mass scale forbettercollisionhandling.Turned‘parallelizefetchresults’onbydefault(inmoduledescriptor)and added functionality to run the additional fetch results workdelayeduntilthefirstactorgetsrendered.
KnownIssues
Running multiple NxApexScenes simultaneously is only supportedwith the 3x solver. The 2.8 solver can generate writelock NxSceneaccessfailures.The new 3x cloth solver does not send debug visualization data toPhysXVisualDebugger.The “GenerateTangentSpace” button inClothingTool cangenerate
several warning dialogs for certain older clothing assets. (Fixed in1.2.1)
APEXClothing1.1
NewFeatures
Per-Actor scaling. Each actor can have an individual scale andsimulatesproperly.Asynchronous cooking.When several actors with different per-actorscale are created, cooking will be delayed if another actor alreadystartedcooking.Whilewaiting,actorswillnotbesimulated.Manualsubstepping:APhysXscenethatwillrunmultiplesubstepsisnowhandledproperlybyclothing.Interpolatedsimulationmesheswillbegeneratedforeachindividualsubsteptoremovesimulationartifactscausedbysubstepping.Caution:Thisfeaturecausesproblemsifusedtogether with 2.8.x physX particles. When enabled, APEX callssimulate/fetchResultsonthecorrespondingphysXsceneseveraltimes.PhysXparticleshavebuffersthatneedtobereadfromtheapplicationaftereachfetchResults(deletedparticleIDs),whichisnotpossibleinthiscase.UseallowApexWorkBetweenSubsteps toenable/disable thefeature.Teleportwithoutreset:ClothingActorscannowbeteleportedwithoutall the vertices being reset to the animated positions. Thiswill onlyleadtogoodresultsifonlytheposeoftheactorandnotthestateoftheanimationischanged.Frozen state: Clothing can be frozen in a given state andwill ceasesimulation.Itcanthenbewokenagaininthesamestate.Thiscontraststhe regular way where re-enabled clothing starts from the animatedstateinstead.VelocityCallback:A user callback that allows to read andwrite thevelocityvaluesofeverysimulatedvertex.Canbeusedtoplaysounddependingoncertainchanges invelocityor to implement i.e.awindeffect.Support for morph targets (also known as blendshapes): At actorcreationasetofvertexdisplacementscanbeusedtomodifythemesh.
PlatformTags:EachgraphicalLODcanhavealistofstringsattached.When converting the .apx/.apb files to a given platform, LODs thatdon’t match a certain pattern can be removed based on this. ThisallowsforreducingassetsizebyremovingLODsthatareunsuitedforaparticularplatform.Correct Simulation Normals: Vertices that are on the border of thesimulated and non-simulated part of the physical mesh can havewronglycalculatednormals.Thissettingwilltrytocorrectforthat.AdaptiveTargetFrequency:Reduces thehighfrequencyjitteringthathappensduetoslightlyvaryingtimesteps.Pressure:Closedclothmeshescanbefilledwithpressure.VertexVelocityClamp:Addsamaximumvelocityinall6majoraxisandclampsallvelocitiestothose.
Improvements
SwitchingofgraphicalLoDshasbeenimprovedinrespecttocopyingpositionandvelocityfromtheoldtothenewsimulationmesh.
Removed
Legacy serialization is gone. Any old .aca file cannot be loadedanymore. They need to be converted to .apx/.apb using the 1.0ParamToolinstead.Some API marked as deprecated has been deleted such asNxClothingActor::setFlags().RemovedseparateNxClothingMaterialLibrary(.acmlfiles)asanassettype.MaterialsarenowintegratedintotheClothingAssetfiledirectly.Parallelphysicsmeshskinningandparallelmesh-meshskinning.Theframedelaythatwasintroducedbythisfeaturemadeituselesstomostapplications.
APEXClothing1.0Beta
NewFeatures
NewMesh-Meshskinningalgorithmthatisfasterandproducesmorereliableresults.Max Distance can be scaled per clothing actor on top of all thephysicallodfeatures.
Improvements
Usingper-actorTaskstoallowmorefinegrainedparallelization.NxClothingActor visibility can be toggled to save unnecessarycomputationsincasewheretheactorisnotvisible.
Removed
Replaced NxClothingActorDesc and NxClothingPreviewDesc withparameterizedobjects.ClothingMaterialLibraryhasbeendeprecated.The separate asset isgoneandhasbeenmergedwiththeclothingasset.Theclassesarestillin place to load the .acml files, which get merged into the clothingassetimmerdiatelyafterthe.acahasbeenloaded.Afterthatbothfilescanbereplacedbyasingleclothingasset.apx/.apb
KnownIssues
Clothing does not support running substeps. When doing so it willemitawarningandthenjustrunasgoodaspossible.Thiscanleadtoartifactswherevertexvelocitiescansometimesbehaveerratically.NxClothingAssetAuthoring::setExportScaleisnotworkinganymoreasitwas designed toworkwith the removed binary serialization.As areplacement, NxClothingAssetAuthoring::applyTransformation() can
becalledbeforeserialization,itapplyatransformationand/orascaletotheasset,whichcanthenbeserializedwiththenewserialization.
nextprevious|APEX1.3ReleaseNotes»©Copyright2012-2017,NVIDIACorporation,AllRightsReserved.CreatedusingSphinx1.0.2.
nextprevious|APEX1.3ReleaseNotes»
APEXParticlesReleaseNotes
APEXParticles1.4
NewFeatures
RefactoredrenderinterfaceforParticlesandTurbulenceFS
APEXParticles1.3.3
NewFeatures
Removed
Improvements
Fixes
Fixed issue where PhysX monitor could keep dynamic rigid bodiesawake.
KnownIssues
CUDA/D3D9interopisunsupported.Added experimental velocity sources to turbulence simulation, butthereareknownissues.It’snotrecommendedtousethisfeature.
APEXParticles1.3.2
NewFeatures
Weighted field sampler collision filtering was added (see migrationguide).AddedRateVsEmitterDurationcurvetoAPEXemitters.AddedminSamplingFPSparameter toAPEXemitterassets toreducediscontinuitiesoffastmovingemitters.AddedaposematrixsemantictoNxUserRenderInstanceBufferDesc.AddedtopSphericalForceandbottomSphericalForcetoVortexFS.Added scaling of APEX emitters and field samplers. SeesetCurrentScale/getCurrentScale methods for attractor, vortex,windFS, emitter, effect package, heat source, substance source, andturbulenceactors.Addedcollision filtering forheat sources and substance sources.SeefieldSamplerFilterDataNameparameter.AddedOrientScaleAlongScreenVelocityIOFXmodifier.
Removed
Removed ‘collisionFilterDataName’ from Turbulence, ParticleIOS,and BasicIOS, since it is redundant under PhysX 3.x. Now just use‘fieldSamplerFilterDataName’Removed ‘fieldBoundaryFilterDataName’ from various field samplerassetssinceitisnowconsidereddeprecated.Removed obsolete semanticFormats[] fromNxUserRenderInstanceBufferDesc.RemovedsupportforGPUaccelerationonpre-FermiGPUs.
Improvements
HeatSourceActor/SubstanceSourceActor NxParameterized parameter
for initial position was renamed to ‘initialPose’ and its type waschangedtoMAT34.HeatSourceActor/SubstanceSourceActor NxParameterized parameterforinitialscalewasrenamedto‘initialScale’.
Fixes
Under PhysX 3.x all collision filtering related to both particles andfield samplers now uses the standard PxFilterData andSimulationFilterShadercallback.ResolvedseveralissueswhereitwaspossibletoexhaustGPUconstantmemoryundercertainheavyloads.APEXwillnowcontinuetoworkundertheseconditions,althoughperformancemaybeslightlyaffected.Fixed crash that could occur when using turbulence debugvisualization.FixedparticletimestatswhenusingCPUparticles.Fixed uninitialized render volume in EffectPackages. Could lead toparticlesnotgettingrendered.Fixed possible turbulence crash when using theupdatePerFramesRangefeature.Whenusingopaquemeshrendering,userRenderDataisnowcorrectlypassedtotheapplicationthroughtheNxUserRenderResourceDesc.Fixedbadreferencecountingofopaquemeshes.Fixed rare race condition that could cause some particles not to berendered.FixedsynchronizationissueswithPhysXwhenusingParticleIOS.FixederrorinparticlebenefitcalculationthatcouldinjectNANsintocode.FixedbadLODcalculationwithupdatePerFramesRangefeature.Fixedraceconditioninturbulence.Fixed improper rendermesh releasewhenusing IOFXmeshparticlerendering.Fixedissueswiththeturbulencedissipationtimefeature.
KnownIssues
CUDA/D3D9interopisunsupported.Added experimental velocity sources to turbulence simulation, butthereareknownissues.It’snotrecommendedtousethisfeature.
APEXParticles1.3.1
NewFeatures
NewWindFSfieldsamplerforwindeffects.Add ‘fieldDragCoeff’ & ‘fieldWeight’ parameters to all assets inBasicFSTurbulencedissipationtime,allowstoremoveturbulencevorticesinapredeterminedtime.Butseeknownissues.Addedability to sampleaTurbulenceFS’svelocity fielddirectly toasurfacebuffer.The NxUserRenderSurfaceBuffer::writeBuffer parameters havechangedtosupportwritingtooffsetsinanyofthreedimensions.Objectscaleforemitteractors.(needdetails)MoreefficientuseofCUDAconstantmemoryinIOFX
Removed
Removed useless fuctions (addFilterData, removeFilterData,getFilterData)fromNxForceFieldActor.PxFilterDatacanbespecifiedinNxForceFieldActorDesc.
Fixes
FixedcrashwhenaturbulenceassethadmaxCollidingObjectssetto0.FixedBasicIOSandTurbulenceFSnothonoringallcollisionfilteringwith PhysX 3.x. Note: now that the collision filtering is correctlyhandled, the behavior could change if you were using non-defaultcollisionfiltering.Fixed an issue with VortexFS not working due to an uninitializedvariable.Fixed a bad interaction between a rotating capsule and a turbulencegrid.
Optimizedmultigrid/diffusioninTurbulenceMore robust handling of CUDA out of memory for TurbulenceFSactor.FixaParticleIOScrashwhenanemitterisdeleted.VariousEditorWidgetsfixes.FixforincorrectEffectPackagedurationcalculation.FixedincorrectcapsuleorientationwhencollidingwithBasicIOSandTurbulenceFS.APEXnowcorrectlytakesintoaccounttotalelapsedtime,whichfixestime-dependentbehaviorofemitters.FixforNULLpointeraccessinEffectPackageActor.Re-enabling a disabled effect in an EffectPackageActor usingsetEffectEnabled=truenowworkes.Fixedissueswithturbulencedebugvisualization.
KnownIssues
CUDA/D3D9interopisunsupported.When using the new turbulence dissipation time feature, some otherfield samplersmay appear to start late. Also cleaning timemay notwork.TheseissueswillbefixedinafuturereleaseofAPEX.
APEXParticles1.3
NewFeatures
Particle and field sampler modules including IOFX, Emitter,BasicIOS, ParticleIOS, and BasicFS have been merged into one“Particles”module.TurbulenceFSisstillaseparatemodule.APEXnow supportsEffect Packages, a collection of particle-relatedassets that can be instantiated together in an applications. APEXprovidestheParticleEffectToolforauthoring.APEX now requires Sprite and Instance Buffers implementations tospecify their layout (NxRenderSpriteLayoutElement andNxRenderInstanceLayoutElement) by using semantic/formatspecificationdefinedincorrespondingenumerations.Added 2 counters to APEX IOFX Stats -SimulatedSpriteParticlesCount,SimulatedMeshParticlesCountAddedNoiseandVortexFieldSamplersintheBasicFSmodule(nowinParticlesmodule).APEXEmitterActor now provides an optional user emitter positionvalidation callback(NxApexEmitterActor::setApexEmitterValidateCallback) used toallowtheapplicationtopreventparticlesfrombeingemittedininvalidlocations(forinstance,ontheothersideofawall).APEX Sphere and Sphere Shell Emitter now supports ‘hemisphere’property(allowsusingonlyspecifiedspherecapasemitter).APEX requiresminimalGPUCompute Capability 1.1 now (G92 orbetterGPU).Changed ‘min’ ‘max’ hints for APEX Particle IOSAsset to ‘uimin’and ‘uimax’ so they are treated as hints only for the user-interfacecode;butwillnot‘invalidate’assets.
Removed
Removed fluidVelocityMultiplier and fluidVelocityClamp parametersfromTurbulenceFSasset.Removedredundantparameter‘position’fromAPEXHeatSource
Fixes
APEXTurbulencemovinggridbehaviourisfixed.CUDA/D3D11 interop is now working. Note that CUDA/D3D9interopstillhasknownissuesandisnotsupportedorrecommended.
KnownIssues
CUDA/D3D9interopisunsupported.Mixing interop and non-interop IOFX rendering at the same time isunsupported.
APEXParticles1.2.4
Fixes
FixedaraceconditionissueduetoimproperscenelockingwithPhysX3.2.xinturbulence.FixedGPUmemoryleakwithturbulence/convexcollision.FixedanLODissuewithParticleIOSthatcouldcauseacrash.
KnownIssues
(PhysX 3.2.4 only) Youmay see the nuisance error streamwarning“Adding particles before the first simulation step is not supported”whenusingParticleIOS.Thiswarningmaybeignored.
APEXParticles1.2.3
NewFeatures
IOFXspriterenderingwasreworkedtoallowwritingspriterenderingdata more efficiently. See the newNxUserRenderResourceManager::getSpriteTextureData() andNxUserRenderSpriteBuffer::writeTexture() callbacks and the newNxUserRenderSpriteTextureDesc.Added NxApexEmitterActor::getSimParticlesCount() to get thenumberofsimulatedparticles.WorkswithBasicIOSandParticleIOS.AddedNxApexEmitterActor::getRateRange().AddedColorByVelocityIOFXmodifier.Added includeVerticalDirection rotation modifier to control whetherverticalspeedaffectsrotation.AddedgetPose()andsetPose()methodsforNxHeatSourceActor.
APEXParticles1.2.2
NewFeatures
AddedTurbulenceHeatSourceassetsandactorsinsteadofthembeingonlypartoftheTurbulencemoduleC++APIAdded setEnabledAPI to JetFS andAttractorFS to enable/disable afieldsampleractoratruntimeBasicIOS: Added NxParameterized collisionWithConvexMesh andcollisionWithTriangleMesh to BasicOS to enable/disable differentshapecollisionAddedfluidViscositytoTurbulenceFS.
Fixes
Added 64bit collision filtering between the ParticleIOS (PhysX 3.xparticles) and APEX Field Samplers (in the fieldSamplerFilterDatamemberofParticleIosAssetParam)Changedgrid resolution type toanenum.Before itwasa float, so itwaspossibletosetinvalidvaluesthatwouldcauseerrors.
Improvements
Particle rendering is now done with a single render buffer for non-interopandadoublerenderbufferforD3D-CUDAinterop.Previouslyitwasalwaysdoublebufferedandpossiblytriplebufferedforinterop.Note that the placement of theNxApexScene::prepareRenderResourceContexts() changes from justbefore calling theUpdateRenderResourcesmethods to outsideof thesimulation(afterFetchResults).EditorWidgets: Flipped “LifeRemaining” axes to show “Life Time”instead,basedonuserfeedback.
APEXParticles1.2.1
NewFeatures
Addednoisefeaturetoturbulencegridsimulation.Addeddragcoefficientparametertoturbulencegrids.Attractorfieldsamplerworksinsideofturbulencegrids.NewFieldVelocityWeightparameter,whichcontrolshowstronglythefieldvelocityaffectsparticles.Supportconvexmeshcollisionwithturbulencegrids.SupportconvexmeshcollisionwithbasicIOS.Cleareremitterdebugvisualizationhints.Newsemantics forparticle rendering:COLOR_FLOAT4andgeneric32-bitUSER_DATA.AllturbulencegridparametersnowexposedthroughNxParameterizedinterface.Temperature visualization now shows different colors fortemperatures.
Fixes
Fixed collision issues with turbulence grids which used to causeunrealisticrigidbodyinteraction.Turbulence actor LOD is now properly disabled when themodule’sLODisdisabled.Fixedcrashissueinturbulencesimulation.
APEXParticles1.2
Removed
ParticlesareonlysupportedonWindows.maxObjectCountisnolongeranIOFXpropertyMostNxFluidIOSActormethodshavebeenremoved,thisclassisnotexposedatruntime.NxModuleIofx::createRenderableIterator() removed. IOFXActorsarenowonlyreachableviaNxApexRenderVolumes.NxModuleIofx::getIofxTypeName() removed. UseNX_IOFX_AUTHORING_TYPE_NAMEfromNxIofxAsset.h
NewFeatures
NxApexRenderVolume - this new class adds the ability to partitionparticle world space in many practical ways. See the IOFXprogrammersguidefordetails.
Improvements
Render resource optimizations. Only one writeBuffer() call is madeperfluidsimulation(IOSactor)perframe,nomatterhowmanyIOFXassetsorvolumesinuse.Deferred IOFX actor creation keeps render resource churn andrenderablecountstoreasonablelevels.IOFXCUDA andCPU performance should be roughly linear to thenumberofparticlesinsimulation.ThenumberofIOFXassetsshouldhavealimitedeffect.More robust CUDA interop with writeBuffer() fallbacks for frameswheremappedbuffersarenotavailable.Interopcanberestricted todoublebuffering ifcertainguaranteesaremetbythegamerenderingthread.
Improvedlevelofdetailparticleculling.
nextprevious|APEX1.3ReleaseNotes»©Copyright2012-2017,NVIDIACorporation,AllRightsReserved.CreatedusingSphinx1.0.2.
previousAPEX1.3ReleaseNotes»
APEXDestructionReleaseNotes
APEXDestruction1.3.4
NewFeatures
DestructibleActor::acquirePhysXActorBuffer uses a new flag inDestructiblePhysXActorQueryFlags. ‘AllowActorsNotInScenes’(default cleared)will return actors that havenotyet been added to aPhysXscene.DestructiblePhysXActorQueryFlags::All has changed toDestructiblePhysXActorQueryFlags::AllStates, sinceother (non-state)valuesarenowintheenum.
Removed
Optimizations
Fixes
MiscellaneousAPIchanges
DestructibleActor::acquirePhysXActorBuffer has a new functionsignature. The ‘eliminateRedundantActors’ bool is removed, and theflag ‘AllowRedundancy’ added toDestructiblePhysXActorQueryFlags. These have opposite meanings,andtheirdefaultvaluesareaccordinglyopposite.
KnownIssues
APEXDestruction1.3.3
NewFeatures
Destructible assets authored with imported multiple-mesh fbx filesnow clip their collision hulls to prevent initial penetration whenchunksarecreated.New NxPhysX3DescTemplate interface to replace the undefinedPhysX3DescTemplate used in public functionsNxApexActorSource::setPhysX3Template and ::getPhysX3Template.To use, create an instance usingNxApexActorSource::createPhysX3DescTemplate(), and useNxPhysX3DescTemplate::release()whendone.
Removed
Deprecated functions createTwoWayRb, addTwoWayRb, andreleaseTwoWayRbhavebeenremoved.
Optimizations
Fixes
Fixedabugwheredestructibles fracturedwhen touchingkinematics,evenifimpactdamagewasdisabled.Fixed a bug which may have led to errors when disabling detailedoverlaptestswithperformDetailedOverlapTestForExtendedStructures.
MiscellaneousAPIchanges
KnownIssues
Known issue with improper reference counting when usingsetSkinnedOverrideMaterial, which could lead to APEX trying toreleasearesourcethathasn’tbeenrequested.UsesetResourceonthematerialtomanuallyincrementitsreferencecountasaworkaround.Destructible scatter meshes may create render resources outside ofupdateRenderResources.Ifyouusescattermeshesyourcallbackmustbethreadsafe.Potential threading issue when using instanced rendering withdestructibles.Adestructiblecouldberenderedtwiceasaresult.
APEXDestruction1.3.2
NewFeatures
NxDestructibleParameters now has two new fields:legacyChunkBoundsTestSetting andlegacyDamageRadiusSpreadSetting.Thesecontrolwhetherornot thelegacysettingsareusedper-actor,withper-assetdefaultssinceit isapart of NxDestructibleParameters. These correspond to theNxModuleDestructible functions setUseLegacyChunkBoundsTestingand setUseLegacyDamageRadiusSpread. The per-actor values mayoverridethemodulevalues.Iftheper-actorvaluesarenegative(theirdefaultsare-1),thenthemodulevaluesareused.Ifaper-actorvalueis0,thenthecorrespondingsettingis“false”(legacysettingisnotused).Otherwise,thelegacysettingisused.NxUserChunkReport has a new virtual callback functiononStateChangeNotify that needs to be added to any userimplementations.Itgetscalledwhenchunkvisibilitychangesoccur,ifthe user has enabled it viaNxModuleDestructible::scheduleChunkStateEventCallback.Destructible authoring API has new functionality that allows it toimport full destruction hierarchies. One does this by passing in anarray of chunk parent indices toNxFractureTools::buildExplicitHierarchicalMesh orNxDestructibleAssetAuthoring::setRootMesh. PhysXLab uses thiswhen importing a multi-mesh FBX file. If the chunk hierarchy willreflecttheparent/childrelationshipgivenbytheFBXscenegraph.NxUserChunkReport has a new virtual callback functionreleaseOnNoChunksVisible. When the last chunk of anNxDestructibleActor disappears, this callback is called. If the userreturns true, APEX will release the destructible actor. If the userchooses to release the actor themselves, they must wait until afterfetchResults()completes.
Voronoi fracture distributes its N sites across all pieces of a multi-mesh.AddednewFractureVoronoitypetoRTfracturing.AddedmaxDepentrationVelocitytobehaviorgroups.Fracture event callback runs before PhysX simulate step, so theapplicationhasachancetomodifyPhysXstatebeforesimulation.Enabledalphachannelforscattermeshes.Addeduser-defineddeletionboundingboxes fordestructible chunks.See NxApexScene::addBoundingBox and thedeleteChunksLeavingUserDefinedBB anddeleteChunksEnteringUserDefinedBB parameters of destructibleactors.Added customizable velocityIterationCount parameter to destructibleactors.Better conversion of legacy damage spread parameters to the newbehavior. SeeNxDestructibleParameters::legacyChunkBoundsTestSetting andNxDestructibleParameters::legacyDamageRadiusSpreadSetting.User-definedsupportgraphs:
NxDestructibleAssetCookingDesc::supportGraphEdgesNxDestructibleAssetCookingDesc::supportGraphEdgeCountNxDestructibleAssetAuthoring::cacheChunkOverlapsUpToDepthNxDestructibleAssetAuthoring::clearChunkOverlapsNxDestructibleAssetAuthoring::addChunkOverlapsNxDestructibleAssetAuthoring::removeChunkOverlapsNxDestructibleAssetAuthoring::getCachedOverlapCountAtDepthNxDestructibleAssetAuthoring::getCachedOverlapsAtDepth.
Removed
SupportforGPUrigidbodieshasbeenremoved.Functions createTwoWayRb, addTwoWayRb, and releaseTwoWayRbhavebeendeprecated.Removed ‘enabled’ parameter from
NxDestructibleAssetAuthoring::setChunkOverlapsCacheDepth(boolenabled,physx::PxI32depth= -1), it isnowa functionparameterofcookChunks
Optimizations
By default, NxDestructibleActor::applyDamage() will only raycastagainststaticchunks.Tomatchthebehaviorofpreviousreleases,passNxDestructibleActorRaycastFlags::AllChunks toNxModuleDestructible::setDamageApplicationRaycastFlags(). Youcanalsohaveitraycastagainstnochunks.Multipleoptimizationstodestructibleactorcreation.FasterapplyDamage.Disabled internal benefit calculations when not using the sort bybenefitfeature.Improveddamageeventreportperformance.Improvedsupportgraphrebuild/updateperformance.Store only a single cooking scale in the destructiblemodule cacheddata,andusePhysX3.x’sscalingfeatureinstead.Reducessizeofdataneededforanapplicationwhenusingdestructiblesatmultiplescales.Note that using a scale of (1,1,1) may still give better PhysXperformance.Improvedrenderupdateprocessingwhichwaspreviouslyrunningonsomeactorsthatweresleeping.Added ability to disable detailed overlap testing for creation ofextended structures. SeeperformDetailedOverlapTestForExtendedStructures destructible actorparameter.
Fixes
No more render resource allocation in fetchResults when instancedchunksareused.Chunks with shapes that had their simulation flags reset
(eSIMULATION_SHAPE)couldget their inertia tensors re-calulatedincorrectly,leadingtobizarrephysicalbehavior.Render resource creation for scatter meshes is now happening inupdateRenderResources of the DestructibleRenderable, not at Assetcreationanymore.Fixed case in extended structureswhere some shapes on broken offislandsdidnotgetthecorrectshapetemplate(includinguserData).Fixed crash inNxDestructibleAsset::releaseAndReturnNxParameterizedInterfacewhenitiscalledonanassetwithexistingactors.Fixedbug thatcaused the lastchunks’graphics to remainwhen theyweredestroyedduetoadebrissetting.Fixedbehaviorwhen“keepVisibleBonesPacked”isfalse.FixedNxDestructibleActorJointnotworkingcorrectlywhenjointedtoaPxActor.When using RT fracture, the renderable bounds now take the RT-fracturechunksintoaccount.Fixedvarioussmallissueswithdestructiblegraphicsupdates.Correctlysetapplieddamageuserdataindamageeventreports.FixedapossiblecrashwhenadestructibleassetnameisNULL.Addedscenelockstoprotectpotentiallyunsafeasynchronoussweeps.Fixed possible nuisance assertions on destructible actor release andwhencreatingkinematicnon-staticdestructibles.Fixeddamageeventassertion.APEX was intercepting onTrigger callbacks from PhysX and notpassingthemalongtotheapplication.Applyimpactforcestonewlycreatedactorsinthescene.FixedamemoryleakonPS4.FixedimproperlyinflatedconvexeswhenskinWidthis0,causingbadcollisiongeometry.Fixedissuewheredestructibleboundskeptgrowing.Fixedothermiscellaneouscrashissues.
MiscellaneousAPIchanges
MovedrebuildCollisionGeometryfromNxDestructibleAssetAuthoringtoNxDestructibleAsset.Renamed “getInstancedChunkCount” to more accurate name“getInstancedChunkMeshCount”APIcleanup:
ExplicitHierarchicalMesh.h renamed toNxExplicitHierarchicalMesh.hFractureTools.hrenamedtoNxFractureToolsStructs.hAddedNxFractureTools.h to expose helper functions that so farwereonlyaccessiblethroughNxDestructibleAssetAuthoringAccess NxFractureTools throughNxModuleDestructible::getFractureTools()Renamedclassesandstructs inNxExplicitHierarchicalMeshandNxFractureToolsStructs.htohaveanNxprefix
IDisplacementMapVolume->NxDisplacementMapVolumeIExplicitHierarchicalMesh->NxExplicitHierarchicalMeshIEmbedding->NxEmbeddingIConvexHull->NxConvexHullMeshProcessingParameters ->NxMeshProcessingParametersNoiseParameters->NxNoiseParametersSliceParameters->NxSliceParametersFractureSliceDesc->NxFractureSliceDescCutoutParameters->NxCutoutParametersFractureCutoutDesc->NxFractureCutoutDescFractureVoronoiDesc->NxFractureVoronoiDesc
Removed “m” prefix of public members ofNxMeshProcessingParameters
mIslandGeneration->islandGenerationmRemoveTJunctions->removeTJunctionsmMicrogridSize->microgridSizemVerbosity->verbosity
KnownIssues
Known issue with improper reference counting when usingsetSkinnedOverrideMaterial, which could lead to APEX trying toreleasearesourcethathasn’tbeenrequested.UsesetResourceonthematerialtomanuallyincrementitsreferencecountasaworkaround.Destructible scatter meshes may create render resources outside ofupdateRenderResources.Ifyouusescattermeshesyourcallbackmustbethreadsafe.Potential threading issue when using instanced rendering withdestructibles.Adestructiblecouldberenderedtwiceasaresult.
APEXDestruction1.3.1
NewFeatures
Fracturingnowhandlesopenmeshes.NoAPIchange.Performance improvement in fetchResults: Only update poses ofawakeactors.Added doNotCreateRenderable parameter to destructible actors.OptimizationiftheAPEXrenderingAPIisbeingbypassed.AddedaccesstoscattermeshesfromNxDestructibleAsset.NxRenderMeshActor::setMaxInstanceCount:Changethemaxinstancecountinthecasethattheinstancebufferwaschanged.Improvement to acquirePhysXActorBuffer: Before, if“eliminateRedundantActors” was true, this function could returnmultiplecopiesofaPhysXactorperNxDestructibleActor.In1.3.1,itwill only return one PhysX actor per NxDestructibleActor, at most.Also,thisqueryhasbeenmademoreefficient.
Fixes
Fixed crash when two or more structures are joined atDestructibleActorcreation.Fixforassertionindestructiblestresssolversample.Fixeddestructiblemodulecacheddatainreleasebuilds.Properly take into account the bias field on weights in destructiblebenefitcalculation.Fixedabadpointerdereferencecrash.Fixedreal-timefracturingthread-safetyissues.Fixedreal-timefracturingoverrideofthePxSimulationEventCallback.FixedapplyTransformationtoalsotransformscattermeshes.FixedNxDestructibleActorJointnotworkingcorrectlywhenjointedtotheworld(oneactorNULL).FixedpotentialcrashwhenPhysX3.xshapecreationfails.
Fixedbaddestructibleactordeletion/creationaccounting,whichcouldpotentiallyhaveledtobadreferencecountsondestructibles.Fixedcrash:APEXcouldaccessdeletedactorsifactorcreationrateorfractureBufferProcessRatesareexceeded.FixedanunsafedestructiblescenereleasewhenusingGRB.Fixedincorrectrenderingwhenadestructibleactorisremovedfromastructure.Fixedan issuewhere thenumberofdynamicchunks, reported in theDynamicDestructibleChunkIslandCountstat,couldexceedthelimitsetbycallingsetMaxDynamicChunkIslandCount.In some cases when using instanced mesh rendering, creating adestructible actor could lead to a releaseRenderResources callback.Thatnolongerhappens.FractureToolnowhandlesmulti-fbximportFractureTool-xoptionnowworkscorrectly
KnownIssues
Known issue with improper reference counting when usingsetSkinnedOverrideMaterial, which could lead to APEX trying toreleasearesourcethathasn’tbeenrequested.UsesetResourceonthematerialtomanuallyincrementitsreferencecountasaworkaround.Destructible scatter meshes may create render resources outside ofupdateRenderResources.Ifyouusescattermeshesyourcallbackmustbethreadsafe.Potential threading issue when using instanced rendering withdestructibles.Adestructiblecouldberenderedtwiceasaresult.
APEXDestruction1.3
NewFeatures
BehaviorgroupsSome common parameters, such as damage threshold, damagespread, density, etc., are now contained in “Behavior Groups.”Everychunkreferencesabehaviorgroupbyindex,allowingtheusertocustomizebehaviorsfordifferentchunks.
Render proxies for destructibles. The rendering of destructibles ismanagedbyanewobjectthatisindependentofthedestructibleactor.Bydefaultyouwillnotseeachange,butyoumaydetachthisobjectfromthedestructible,meaningthattherenderdatawillnotgetdeletedwhenthedestructibleisdeleted.Youmaydeletetherenderablewhenyou’redonewithit.Thisisusefulformulti-threadedrendererswhichmay have the render data queued up even after the destructible isdeletedinthemainthread.Newdamagedetection(canberevertedtolegacybehavior):
Exact chunk collision volumes used for hit testing (point andradius damage). This gives better consistency when applyingdamagetodestructiblesatdifferentLODs.
NewdamagespreaddamageToRadiusisnolongerusedforpointandradiusdamage.Instead,behaviorgroupscontainaDamageSpreadFunctionstruct,which contains a minimumRadius, radiusMultiplier, andfalloffExponent.Itworksasfollows.Whendamageisapplied,itcomeswith a radius.That radius is zero for a point damage. Inanycase,wemultiplythatdamageradiusbyradiusMultiplier,andthen add minimumRadius. This value becomes what we call“maximumRadius.” Then, when applying the damage, everychunkuptominumumRadiustakesthefulldamage,andchunkspast the maximumRadius take zero damage. How the damagefalls off between the minimumRadius and maximumRadius is
determinedbyfalloffExponent.Basically,alinearfunctionwhichgoes from1.0down to0.0betweenmin tomax is raised to thepowerfalloffExponent,andtheresultatagivenchunk’sradiusismultipliedbythedamage,togettheapplieddamage.damageToRadius is still used for impact damage, but it is nolonger scaledby the size of thedestructible.To recover the oldbehavior, multiply the damageToRadius by the approximateradiusofthedestructible
DamagevertexcoloringThe behavior groups now contain aDamageSpreadFunction fordamage coloring, as well as a damageColorChange parameter(Vec4). If damageColorChange != (0,0,0,0), a per-actor colorchanneliscreatedforthedestructible.Theinitial(asset-supplied)color channel is used to initialize it, or all zeros if none exists.Then, using a similar radial behavior to that used for damagespread (above), the color channel is modified by thedamageColorChange vector. This allows for some nice effectsusing multiple-texture shaders. One difference in the radialfunction: the falloff is calculated between 0 and max radius,insteadofminradiusandmaxradius.
Ability to specify collision volume properties per chunk depth inPhysXLabDamagedepthlimit:Youcanspecifyhowmanyhierarchydepthsdeepfracturingmayoccur,relativetothechunkthattakesthedamage.MorerobustfracturinginPhysXLab.BSPsarestoredandfracturedata normalized scale, with the output mesh scaled back to theappropriate world coordinates. The result is that many inexplicableerrors (BSPs which looked perfect were generating holes and extratriangles)arenowgone.Better chunk deletion probability behavior. Debris chunks may bedeleted with a user-supplied probability. Now the probabilitydistribution is scaled by the damage taken by each chunk, andnormalized.Theresultisthatmorechunksdisappearnearthedamagepoint.
Limitedreal-timefracturing.Chunkswithnochildchunkscanbereal-timefracturednow.Thismeansthatafracturepatternisappliedtothechunk at a position specified at runtime. This may be appliedrecursively.In1.3,onlyaglassfracturepatternisavailable.Aphysical stress solver is availablewhenusingPhysX3.3. Stressesare updated as a destructible structure is fractured, and when theyexceedauser-specifiedlimit,fracturingwilloccuratthehigheststresspointsautomatically.Scattermeshes
Abilitytoauthorinstancedmeshes,randomlyscatteredaboutthesurfaceoffracturedchunks,rotatedandscaledwithrespecttothesurface normal within a range specified by the user. AuthoringwithpreviewavailableinPhysXLab.
GraphicalnoiseonchunkfaceswithVoronoifracturing.Fasterqueries(rayCastandobbSweep)forstaticchunks,ifstatic-onlyqueryflagsareselected.Exposedseveralfunctionstogetper-chunkstate.
KnownIssues
Known issue with improper reference counting when usingsetSkinnedOverrideMaterial, which could lead to APEX trying toreleasearesourcethathasn’tbeenrequested.UsesetResourceonthematerialtomanuallyincrementitsreferencecountasaworkaround.
APEXDestruction1.2.4
Fixes
Fixed contacts not getting detected between PhysX bodies anddestructibleswhenusingGRB.
APEXDestruction1.2.3
NewFeatures
Added actor synchronization filtering by damage event depth andfractureeventdepth.Added NxDestructibleActor::setDeleteFracturedChunks() to tell adestructible actor to delete its fractured chunks insteadof simulatingthem.Added NxUserDestructibleSyncHandler::onPreProcessReadBegin()and NxUserDestructibleSyncHandler::onPreProcessReadDone()callbacks.EditedNxUserDestructibleSyncHandler::onReadBegin()callback.Removed NxUserDestructibleSyncHandler::onSwizzleDone()callback.AddedNxDestructibleActorSyncStatestruct.EditedNxDestructibleActor::setSyncParams()method.EditedNxDestructibleActor::setHitChunkTrackingParams()method.Added new NxDestructibleAssetStats: maxHullVertexCount,maxHullFaceCount,chunkWithMaxEdgeCount.NxDestructibleAsset::createDestructibleActor() renamed toNxDestructibleAsset::createDestructibleActorFromDeserializedState().NxDestructibleActor::getPartTM() renamed toNxDestructibleActor::getChunkTM().IExplicitHierarchicalMesh::IConvexHull::reduceHull functionremovesverticesfromaconvexhulluntilthegivenlimitsarereached(aftercooking).Addedboth thedestructibleactorpointer and thechunk index to theNxApexPhysX3Interface::setContactReportFlags() callback whenPhysX3.xshapesarecreated.
APEXDestruction1.2.2
NewFeatures
Optiontoincludeuseofstresssolverindestructibles.Thestresssolverattemptstodetectandbreakoffchunksdeemedtobeoverly-strained.Introduced a new parameter struct “StrutureSettings” in thedestructibleactor.Parameters thatmakeup“StructureSettings”affectallactors’settingsstructure-wide.
Newparameters“useStressSolver”,“stressSolverTimeDelay”and“stressSolverMassThreshold”introducedforthestresssolver.
AuthoringImprovements
Option to removeallT-junctions froma fracturedmesh.Thisallowspost-processing such as deformation to be applied (for example in aDCCtool).Abilitytocontrol theinteriormaterialsusedwhenfracturingselectedchunks.Abilitytoaddnoisetotheperimeterfacesofcutoutchunks.
BugFixes
ApexHelloWorldsampledestructionsceneonPS3crashwasfixed
APEXDestruction1.2.1
NewFeatures
EnabledGRBsupportwithPhysX3.2.1.Supportmultipleinteriormaterials.Added hard sleeping option, which turns chunk islands kinematicwhentheysleep.Theymaybeturneddynamicagainifenoughdamageisapplied.New sleepVelocityFrameDecayConstant parameter replacessleepVelocitySmoothingFactor.
Removed
Removedsurfacetracefunctionality(wasusedforolddustsystem).
AuthoringImprovements
Edgefacenoiseincutout.
KnownIssues
Known crash in ApexHelloWorld sample destruction scene on PS3withheavydestructionload.
APEXDestruction1.2
NewFeatures
FractureToolFractureToolisanewcommand-lineutilityforfracturingand exportingmeshes. It provides a subset of the fracturing featuresexposed by PhysXLab, and serves as a convenient way of batchprocessingmeshesandtestingnewfeatures.NxDestructibleActor
Serialization support for actor state provided via the actor’sNxParameterizedinterfaceDeserialization support for actor state provided viaNxParameterizedconstructorargument
AddedsetGlobalPose/getGlobalPose toNxDestructibleActor (sets theposeofstaticchunksonly).Added impactDamageDefaultDepth to NxDestructibleParameters.Chunksup to thisdepthwill take impactdamage,unlessanoverrideflagisset(seebelow).TAKE_IMPACT_DAMAGE flag has been changed toOVERRIDE_IMPACT_DAMAGE/OVERRIDE_IMPACT_DAMAGE_VALUE.At the given depth, the OVERRIDE_IMPACT_DAMAGE flag tellsAPEX to use OVERRIDE_IMPACT_DAMAGE_VALUE (true orfalse) instead of the behavior it would get fromimpactDamageDefaultDepth(seeabove).Newdustandcrumblecallbacks,usingNxUserChunkParticleReport.Visibility event buffer for NxDestructibleActors usingacquireChunkEventBuffer/releaseChunkEventBuffer.Option for second bone buffer for frame-delayed chunk transforms,usingkeepPreviousFrameBoneBuffer.
Improvements
LODperformanceimprovements.
Betterinstancingofcutoutchunks,allowsforUVoffsetinstancingsothattexturemapsdon’tneedtotilewiththechunkinstancetiling.Thisrequires a renderer which uses the newNxRenderInstanceSemantic::UV_OFFSET semantic for theApexRenderMeshinstancebuffer.
AuthoringImprovements
Voronoi fracturing mode usingNxDestructibleAssetAuthoring::createVoronoiSitesInsideMesh and::createVoronoiSplitMesh.Voronoi cell visualization utility usingNxDestructibleAssetAuthoring::visualizeVoronoiCells.Severalperformanceoptimizations.Ability to fracture a single chunk usingNxDestructibleAssetAuthoring::hierarchicallySplitChunk.Ability to re-calculate a collision hull for a chunk using differentsettings,oracustom-madehull,andtrimthehullsagainstneighborstoeliminate initial overlap:NxDestructibleAssetAuthoring::rebuildCollisionGeometry andNxDestructibleAssetAuthoring::trimCollisionGeometry.AbilitytocontrolinteriorUVmappingdirectionandoffsetinsliceandcutoutmode.SeeFractureTools::FractureMaterialDesc.Utility to deliver a rendermeshwhich displays a typical noisy slicesurface for the current settings, usingNxDestructibleAssetAuthoring::buildSliceMesh.
Removed
Deprecated damageToPercentDeformation anddeformationPercentLimitinNxDestructibleParameters.
KnownIssues
Known crash in ApexHelloWorld sample destruction scene on PS3withheavydestructionload.
BugFixes
Better fracture behavior (fewer errors such as missing or extrapolygons).
Misc.
chunkCount()/depthCount() renamed togetChunkCount()/getDepthCount(),forconsistencywiththerestoftheAPI.DestructibeactorsthatcontainGRBsdonotsenddebugvisualizationdatatoPhysXVisualDebugger.
APEXDestruction1.1
NewFeatures
GPURigidBodies TheNxModuleDestructibe has settings to enableGPU Rigid Bodies for destruction. If your hardware supports thisfeature,largenumbersofchunks(inthe1000’s)canbesimulatedinafractionofthetimetakenbyaCPU.GRBRigidBodysupportrequiresNVIDIAdriver270.81orlater,PhysX2.8.4RC6orlaterandaCUDAcapableGPU.Chunk instancing (When authored to instance) correponding chunksbetweendifferentdestructibleactorswillberenderedusinganinstancebuffer. This is advantageous if there are many destructible actorswhichreferencethesameasset.Chunk tiling (When authored to tile)matching chunks created fromcutout fracturingwill be instancedwithin the same actor, aswell asother destructible actors which reference the same asset. This candrasticallyreducethememorysizeoftheasset.NxDestructibleActor:
LOD setting sets the maximum chunk depth which can befractured,implementingforcePhysicalLODinterfacegetChunkLinearVelocity and getChunkAngularVelocity API intheactorPer-actormaterialsintheactordescriptorCanspecifyaseparaterendermeshforstaticchunkswhichgetsdrawn in a single draw call, using therenderStaticChunksSeparatelyfieldintheactordescriptorcansetaseparatesetofstaticmaterialsusedbythestaticmeshifrenderStaticChunksSeparatelyissetminimumFractureDepthaddedtodestructibleparameters,tolimitthesizeofthepiecesthatcanbebrokenfree
NxDestructibleActor:
Implements applyTransformation interface to geometricallytransformanasset
FractureeventcallbacknowconsolidateschunkinformationtoreducethenumberoffractureeventsreportedNxActor (chunk island)FIFOcannowbe sortedby “benefit” (takesintoaccountscreensizeandageofthechunk),sothatless-beneficialchunksareremovedfirst.NxShapecountlimitcanbesetinadditiontoNxActorcount
Improvements
ChunkcreationcanbeamortizedovermanyframesFractureprocessingcanbeamortizedovermanyframesConformstonewLODsystemRemoved the per-chunk thread locks, for better performance andresourceusageSimpleDestructionhasmultiplesamplescenes, loadedusingthekeys1-7
BugFixes
Damage reports are no longer issuedwhen a destructible is set freeusingsetDynamic()Severalcrashbugsfixed
AuthoringImprovements
Abilitytohavemultiplecollisionhullsperchunk.Cancancelthefractureoperation“Trimfacehulls”optionincutoutfracturingAbility to use multiple UV channels and color channels from FBX
meshescookChunks does not use the internal ExplicitHierarchicalMesh anylonger,onlyinformationpassedinfromthedescriptor
Removed
KnownIssues
Sensitivityof instancing. Instancedcutout fracturing isverysensitivetothescaleofthecutoutmap.Itmusttileperfectlyinordertoinstanceall chunks across a mesh. Similiarly, if there is backface noise incutout fracturing, the grid sizemust be amultiple of the number offracture map tiles. If not, the chunk meshes won’t be exactlyduplicatedfromtiletotile,sotheywillnotinstance.UVinstancingnotsupported.Thereforethetexturemapsontheassetmusttilewiththefracturemapifinstancingisused.Othterwise therewillbeagraphicalpopwhenfracturingfirstoccursonacutoutface.Chunkislandseparationbug.Whenachunkdoesnotphysicallytouchany of its neighbors, it forms a chunk support island. WhensupportDepth is set to that chunk’sdepth, and fracturingoccurs, thatchunkwillalwaysbreakfreefromtherestofthedestructible,andtherestofthedestructiblebreaksfreeaswell.Thisisverycommonwhenthere is noise in the slicing surface, and so chunk collision hulltrimmingisperformedinordertopreventhulloverlaps.
APEXDestruction1.0Beta
NewFeatures
Abilityforobjectstopassthroughdestructibleswhendamageistaken.ThisusesthenewmaterialStrengthparameter.Chunkneighbor padding value is exposed, allowing the user to tunehow near chunk collision volumes need to be for chunks to beconsideredneighborsforsupportcalculations.Tiling feature for SimpleDestruction (-tile command line argument),allows destructibles to be tiled in the scene. This allows you to seehowtheyformextendedstructures.
Improvements
Destructible structures can now contain up to 4 billion chunks(increasedfrom64kchunks).Dynamic chunk islands can contain chunks from more than onedestructible, so there is no artificial fracturing at destructibleboundaries.Morerobustimpactdamage.BetterbehaviorwhenLODbudgetlimitisreached.New flags for NxDestructibleActor::rayCast andDestuctibleActor::obbSweep, which allow you to override theACCURATE_RAYCASTSsettingintheasset.
AuthoringImprovements
BetterchunkmeshislandgenerationImprovedcutoutfracturing.Morerobust,nomoretrianglesinsidenon-convexandbetternormal/tangentgenerationonedgesofchunks.Thresholdanglefornormalsmoothingoncutoutfracturing.Betterspacingcalculationofgridusedfornoisysurfacefracturing.
Better fractured mesh cleaning. Can reduce fractured mesh sizesignificantly(ontheorderof50%insomecases).Optionforperiodicbackfacenoise,sothattiledchippabledestructibleshavenodiscontinuitiesbetweenthem.Optiontochooseifacoremeshisexportedwithadestructibleornot.Option to “transfer” texture map from core mesh to neighboringchunksornot.Slicingparametersmaybesetateachdepthinthefracturehierarchy.Multiple-part meshes may be fractured. These will become the firststageoffracturing.Coremeshesmayalsobemadefrommultiple-partmeshes.
Removed
Replaced NxDestructibleActorDesc and NxDestructiblePreviewDescwithparameterizedobjects.
KnownIssues
Cutout-fractured tiles (closely packed collision bounds) jitter whenfractured.Errors in destructible structure calculations - when chunk neighborsinitiallyformanisland,thewholedestructiblemaybedislodgedwhenanypartofthestructureitisingetsdamaged.Chunk mesh island generation can sometimes produce spurioustriangles.Open meshes can produce spurious triangles when fractured. SmallopeningsareusuallyOK.DestructionAPIisnotfullybuffered.PhysXLab can easily runs out of memory on a 32-bit OS, withcomplexfracturing.Support structures don’t perform stress calculations, leading toconfigurations“hangingbyathread”WhentestingcollisionofchunkswiththestaticgeometryinthePhysX
scene (for support determination), only the AABB of the chunk isused.
previousAPEX1.3ReleaseNotes»©Copyright2012-2017,NVIDIACorporation,AllRightsReserved.CreatedusingSphinx1.0.2.
nextAPEX1.3ReleaseNotes»
NVIDIA(R)APEX(TM)SDKReleaseNotes(APEXSDKhasbeendeprecated)Note:APEXSDKhasbeendeprecated
Contents:
APEX1.4.1-ReleaseNotes(APEXhasbeendeprecated)InstallingAPEXNewin1.4Newin1.3.3Newin1.3.2Newin1.3.1Newin1.3Newin1.2.4Newin1.2.3Newin1.2.2Newin1.2.1Newin1.2Newin1.1Newin1.0
APEXClothingReleaseNotesAPEXClothing1.3.3APEXClothing1.3.2APEXClothing1.3.1APEXClothing1.3APEXClothing1.2.4APEXClothing1.2.3APEXClothing1.2.2APEXClothing1.2.1APEXClothing1.2APEXClothing1.1APEXClothing1.0Beta
APEXParticlesReleaseNotesAPEXParticles1.4APEXParticles1.3.3
APEXParticles1.3.2APEXParticles1.3.1APEXParticles1.3APEXParticles1.2.4APEXParticles1.2.3APEXParticles1.2.2APEXParticles1.2.1APEXParticles1.2
APEXDestructionReleaseNotesAPEXDestruction1.3.4APEXDestruction1.3.3APEXDestruction1.3.2APEXDestruction1.3.1APEXDestruction1.3APEXDestruction1.2.4APEXDestruction1.2.3APEXDestruction1.2.2APEXDestruction1.2.1APEXDestruction1.2APEXDestruction1.1APEXDestruction1.0Beta
nextAPEX1.3ReleaseNotes»©Copyright2012-2017,NVIDIACorporation,AllRightsReserved.CreatedusingSphinx1.0.2.