| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" |
| "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
|
|
|
|
| <html xmlns="http://www.w3.org/1999/xhtml"> |
| <head> |
| <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
| <meta http-equiv="x-ua-compatible" content="IE=Edge"/> |
| |
| <title>Release Notes — NVIDIA Flex 1.2.0 documentation</title> |
| |
| <link rel="stylesheet" href="_static/default.css" type="text/css" /> |
| <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> |
| <link rel="stylesheet" href="_static/breathe.css" type="text/css" /> |
| <link rel="stylesheet" href="_static/application.css" type="text/css" /> |
| <link rel="stylesheet" href="_static/styleguide.css" type="text/css" /> |
| |
| <script type="text/javascript"> |
| var DOCUMENTATION_OPTIONS = { |
| URL_ROOT: './', |
| VERSION: '1.2.0', |
| COLLAPSE_INDEX: false, |
| FILE_SUFFIX: '.html', |
| HAS_SOURCE: true |
| }; |
| </script> |
| <script type="text/javascript" src="_static/jquery.js"></script> |
| <script type="text/javascript" src="_static/underscore.js"></script> |
| <script type="text/javascript" src="_static/doctools.js"></script> |
| <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> |
| <script type="text/javascript" src="_static/bootstrap.js"></script> |
| <script type="text/javascript" src="_static/jquery.cookie.js"></script> |
| <script type="text/javascript" src="_static/jquery.storageapi.js"></script> |
| <link rel="top" title="NVIDIA Flex 1.2.0 documentation" href="index.html" /> |
| <link rel="prev" title="Manual" href="manual.html" /> |
| </head> |
| <body> |
| <nav class="navbar navbar-inverse navbar-default"> |
| <div class="row"> |
| <div class="navbar-brand"> |
| <img class="logo" src="_static/developerzone_gameworks_logo.png" alt="Logo"/> |
| </div> |
| <div id="searchbox" style="display: none; float:right; padding-top:4px; padding-right:4px"> |
| <form class="search form-inline" action="search.html" method="get"> |
| <div class="form-group"> |
| <input type="text" name="q" class="form-control" /> |
| <input type="submit" value="Search" class="btn btn-primary" /> |
| </div> |
| <input type="hidden" name="check_keywords" value="yes" /> |
| <input type="hidden" name="area" value="default" /> |
| </form> |
| </div> |
| <script type="text/javascript">$('#searchbox').show(0);</script> |
| </div> |
| </nav> |
| <div class="masthead"> |
| <div class="row"> |
| <ul class="breadcrumb"> |
| <li><a href="index.html">NVIDIA Flex 1.2.0 documentation</a></li> |
| </ul> |
| </div> |
| </div> |
| <div class="row"> |
| <div class="col-md-3 bs-sidenav" style="white-space: nowrap; overflow: auto;"> |
| <div class="bs-sidebar"> |
| <div id="sidebar_toc"> |
| <h4>Table Of Contents</h4> |
| <ul class="current"> |
| <li class="toctree-l1"><a class="reference internal" href="index.html">Overview</a></li> |
| <li class="toctree-l1"><a class="reference internal" href="manual.html">Manual</a><ul> |
| <li class="toctree-l2"><a class="reference internal" href="manual.html#introduction">Introduction</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="manual.html#library-design">Library Design</a><ul> |
| <li class="toctree-l3"><a class="reference internal" href="manual.html#quick-start">Quick Start</a></li> |
| </ul> |
| </li> |
| <li class="toctree-l2"><a class="reference internal" href="manual.html#buffers">Buffers</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="manual.html#particles">Particles</a><ul> |
| <li class="toctree-l3"><a class="reference internal" href="manual.html#radius">Radius</a></li> |
| <li class="toctree-l3"><a class="reference internal" href="manual.html#phase">Phase</a></li> |
| <li class="toctree-l3"><a class="reference internal" href="manual.html#active-set">Active Set</a></li> |
| </ul> |
| </li> |
| <li class="toctree-l2"><a class="reference internal" href="manual.html#constraints">Constraints</a><ul> |
| <li class="toctree-l3"><a class="reference internal" href="manual.html#fluids">Fluids</a></li> |
| <li class="toctree-l3"><a class="reference internal" href="manual.html#springs">Springs</a></li> |
| <li class="toctree-l3"><a class="reference internal" href="manual.html#cloth">Cloth</a></li> |
| <li class="toctree-l3"><a class="reference internal" href="manual.html#inflatables">Inflatables</a></li> |
| <li class="toctree-l3"><a class="reference internal" href="manual.html#rigid-bodies">Rigid Bodies</a></li> |
| <li class="toctree-l3"><a class="reference internal" href="manual.html#soft-bodies">Soft Bodies</a></li> |
| </ul> |
| </li> |
| <li class="toctree-l2"><a class="reference internal" href="manual.html#solver">Solver</a><ul> |
| <li class="toctree-l3"><a class="reference internal" href="manual.html#time-stepping">Time Stepping</a></li> |
| <li class="toctree-l3"><a class="reference internal" href="manual.html#relaxation">Relaxation</a></li> |
| </ul> |
| </li> |
| <li class="toctree-l2"><a class="reference internal" href="manual.html#collision">Collision</a><ul> |
| <li class="toctree-l3"><a class="reference internal" href="manual.html#spheres">Spheres</a></li> |
| <li class="toctree-l3"><a class="reference internal" href="manual.html#capsules">Capsules</a></li> |
| <li class="toctree-l3"><a class="reference internal" href="manual.html#triangle-meshes">Triangle Meshes</a></li> |
| <li class="toctree-l3"><a class="reference internal" href="manual.html#convex-meshes">Convex Meshes</a></li> |
| <li class="toctree-l3"><a class="reference internal" href="manual.html#signed-distance-fields">Signed Distance Fields</a></li> |
| <li class="toctree-l3"><a class="reference internal" href="manual.html#planes">Planes</a></li> |
| <li class="toctree-l3"><a class="reference internal" href="manual.html#margins">Margins</a></li> |
| <li class="toctree-l3"><a class="reference internal" href="manual.html#priority">Priority</a></li> |
| </ul> |
| </li> |
| <li class="toctree-l2"><a class="reference internal" href="manual.html#diffuse-particles">Diffuse Particles</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="manual.html#threading">Threading</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="manual.html#profiling">Profiling</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="manual.html#limitations-known-issues">Limitations / Known Issues</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="manual.html#acknowledgments">Acknowledgments</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="manual.html#references">References</a></li> |
| </ul> |
| </li> |
| <li class="toctree-l1 current"><a class="current reference internal" href="">Release Notes</a><ul> |
| <li class="toctree-l2"><a class="reference internal" href="#id1">1.2.0</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="#id2">1.1.0</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="#id3">1.0.0</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="#id4">0.9.5</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="#id5">0.9.0</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="#id6">0.8.0</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="#id7">0.2.5</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="#id8">0.2.3</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="#id9">0.2.2</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="#id10">0.2.1</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="#id11">0.2.0</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="#id12">0.1.0</a></li> |
| </ul> |
| </li> |
| </ul> |
|
|
| </div> |
| <h4>Previous topic</h4> |
| <p class="topless"><a href="manual.html" |
| title="previous chapter">Manual</a></p> |
| <div id="searchbox" style="display: none"> |
| <h4>Quick search</h4> |
| <form class="search form-inline" action="search.html" method="get"> |
| <div class="form-group"> |
| <input type="text" name="q" class="form-control" /> |
| <input type="submit" value="Search" class="btn btn-primary" /> |
| </div> |
| <input type="hidden" name="check_keywords" value="yes" /> |
| <input type="hidden" name="area" value="default" /> |
| </form> |
| <p class="searchtip" style="font-size: 90%"> |
| Enter search terms or a module, class or function name. |
| </p> |
| </div> |
| <script type="text/javascript">$('#searchbox').show(0);</script> |
| </div> |
| </div> |
| <div class="document col-md-8"> |
| <div class="body"> |
| |
| <div class="section" id="release-notes"> |
| <span id="releasenotes"></span><h1>Release Notes<a class="headerlink" href="#release-notes" title="Permalink to this headline">¶</a></h1> |
| <div class="section" id="id1"> |
| <h2>1.2.0<a class="headerlink" href="#id1" title="Permalink to this headline">¶</a></h2> |
| <ul class="simple"> |
| <li>Improved collision against moving shapes, solver now correctly interpolates shape transforms for substeps</li> |
| <li>Improved Linux support, removed GLUT/GLEW dependencies</li> |
| <li>New API for adding soft-joints (dynamic shape-matching constraints) via. the extensions API, see NvFlexExtCreateSoftJoint()</li> |
| <li>New API to retrieve particle neighbor information, see NvFlexGetNeighbors()</li> |
| <li>New API to support shape collision filtering, collision channels can be assigned to particles and shapes to specify which pairs collide, see NvFlexPhase</li> |
| <li>New API to support per-shape plastic deformation, it is now possible to specify plastic creep and threshold coefficient on a per-shape basis (previous global settings), see NvFlexSetRigids()</li> |
| <li>New API to selectively disable solver features, this can lead to improved performance, see NvFlexFeatureMode, replaces global FlexParams::fluid option</li> |
| <li>New API to allow sub-range particle buffer updates, see NvFlexCopyDesc</li> |
| <li>New API for asynchronous compute, see NvFlexInitDesc</li> |
| <li>New API change, NvFlexUpdateTriangleMesh() now takes vertices with 16-byte stride to remove CPU synchronization step in D3D implementations</li> |
| <li>Fix for NvFlexParams::anisotropyScale, this change improves the fitting of ellipsoids to fluid particle distributions, it should now typically be left at 1.0</li> |
| <li>Fix for NvFlexGetTimers() reporting incorrect values on D3D12</li> |
| <li>Fix for vsync in D3D12</li> |
| <li>Fix for crash when using Flex with NVIDIA driver 384.76</li> |
| <li>Fix for unnecessary synchronization when calling NvFlexMap() on a device buffer</li> |
| <li>Fix numerical precision for shape-matching constraints with large coordinates</li> |
| <li>Fix for uninitialized contact indices returned from NvFlexGetContacts() if NvFlexUpdateSolver() has not been called</li> |
| <li>Fix for SDF collision in D3D12</li> |
| <li>Fix for free after delete in CUDA when using SDFs</li> |
| <li>Fix for D3D warning when using NvFlexSetRigids()</li> |
| <li>Add D3D12 rendering support to the demo</li> |
| <li>Add support for device NvFlexBuffers on D3D</li> |
| <li>Enable NvToolkit profiling zones so to provide annotations in NSight profiles by default, this requires nvToolsExt64_1.dll be present</li> |
| </ul> |
| </div> |
| <div class="section" id="id2"> |
| <h2>1.1.0<a class="headerlink" href="#id2" title="Permalink to this headline">¶</a></h2> |
| <ul class="simple"> |
| <li>New API style, for consistency with other products the API has now an NvFlex prefix and follows a naming convention similar to PhysX</li> |
| <li>Add support for DirectX, in addition to CUDA there is now a cross platform DirectX 11 and 12 version of the Flex libraries that Windows applications can link against</li> |
| <li>Add support for max acceleration clamping, see NvFlexParams::maxAcceleration, can be useful to reduce popping with fast moving kinematic shapes and large interpenetration</li> |
| <li>Add support to querying compute device, see NvFlexGetDeviceName()</li> |
| <li>Add support for flushing compute queue, see NvFlexFlush()</li> |
| <li>Add support for multiple library instances, NvFlexInit() now returns a library which is bound to a single compute device</li> |
| <li>Add support for local space particle simulation, see NvFlexExtMovingFrameInit() and two new local space fluid and cloth demos</li> |
| <li>Add support for CUDA 8.0.44</li> |
| <li>Remove NvFlexError enum, errors will be reported through the NvFlexErrorCallback passed to NvFlexInit()</li> |
| <li>Remove NvFlexMemory enum, users should use the new NvFlexBufferType</li> |
| <li>Fix bug in inflatable constraint solver that could cause some shapes to generate NaNs</li> |
| <li>Fix for SDF contact generation when the particle lies completely outside volume, fixes a problem with ghost contacts</li> |
| <li>Fix for friction being incorrectly applied on trigger shapes</li> |
| <li>Fix for multi-phase fluid cohesion not working correctly, re-enable Rayleigh-Taylor instability test</li> |
| <li>Fix bug with public projects that referenced internal CUDA paths</li> |
| <li>Fix for calling NvFlexSetInflatables() with a count of zero</li> |
| <li>Fix for buoyancy parameter</li> |
| <li>Fix for bug in BVH builder that could cause missed collisions</li> |
| <li>New optional NvFlexDevice library for handling GPU selection and initialization in CUDA</li> |
| <li>New buffer based API, all data must now be passed to Flex through FlexBuffers created through NvFlexAllocBuffer()</li> |
| <li>New stable shape matching code for more robust and efficient soft bodies, removes need for NvFlexParams::inertiaBias</li> |
| <li>New collision shape API supports instancing of convex meshes and a much simplified API, see NvFlexSetShapes()</li> |
| <li>Improvements to collision detection for moving shapes, Flex will now perform a CCD check also taking into account the shape trajectory using the prev/current transforms of each shape</li> |
| </ul> |
| </div> |
| <div class="section" id="id3"> |
| <h2>1.0.0<a class="headerlink" href="#id3" title="Permalink to this headline">¶</a></h2> |
| <ul class="simple"> |
| <li>Added support for reporting collision shape ids, and trigger volume shapes, see flexGetContacts()</li> |
| <li>Optimizations to host code performance</li> |
| <li>Fix for potential memory leak in SDF object destruction</li> |
| <li>Fix for potentially missed collisions during convex shape CCD</li> |
| <li>Fix for incorrect bounds computation during flexSetShapes() (if not specified by user)</li> |
| <li>Fix for initial shape translations being incorrect when using a transform with flexExtCreateInstance()</li> |
| <li>Move flexExt.h header to the /include folder</li> |
| </ul> |
| </div> |
| <div class="section" id="id4"> |
| <h2>0.9.5<a class="headerlink" href="#id4" title="Permalink to this headline">¶</a></h2> |
| <ul class="simple"> |
| <li>Fix for NaNs being generated during shape matching with plastic deformation enabled</li> |
| <li>Fix for bug that could lead to translational drifting of shape matched rigid bodies</li> |
| <li>Fix for incorrect interaction of restitution and friction when using the collision margin parameters</li> |
| <li>New geometry instancing API for specifying collision shapes, adds support for transformed triangle meshes and signed distance fields, see flexSetShapes()</li> |
| <li>New BVH based collision detection improves performance for scenes with large triangle meshes</li> |
| <li>New mesh tearing API, see flexExtTearClothMesh()</li> |
| <li>New CCD collision detection for particle versus convex shape, helps reduce tunneling with thin convexes</li> |
| <li>Performance improvements for soft body cooking times in flexExtCreateSoftFromMesh()</li> |
| <li>Exposed intertial bias for shape matching constraints, see FlexParams::mInertiaBias</li> |
| <li>Exposed parameter to control the lifetime of diffuse particles, see FlexParams::mDiffuseLifetime</li> |
| </ul> |
| </div> |
| <div class="section" id="id5"> |
| <h2>0.9.0<a class="headerlink" href="#id5" title="Permalink to this headline">¶</a></h2> |
| <ul class="simple"> |
| <li>Added support for soft bodies, particles can now belong to multiple shape-matching clusters used to drive linear blend skinning</li> |
| <li>Added support for particle rest positions that can be used to filter collisions between particles that touch in their rest pose, see flexSetRestPositions()</li> |
| <li>Added support for spheres and capsules as collision shapes, renamed flexSetConvexes() to flexSetShapes()</li> |
| <li>Added support for user callbacks, these can be used to implement custom constraints, force fields, etc. See flexRegisterSolverCallback()</li> |
| <li>Added support for the NVIDIA control panel, Flex will now use the selected PhysX device if desired, see flexInit() for details</li> |
| <li>Added support for Android platforms</li> |
| <li>Added flexGetParams() method to retrieve default values and set defaults to sensible values</li> |
| <li>Improved shape-matching algorithm with better inversion handling</li> |
| <li>Optimizations for flexSetTriangles(), users can now pass the triangle bounds to avoid having them re-calculated explicitly</li> |
| <li>Rigid constraints now use quaternions as their orientation representation, see flexSetRigids() and flexGetRigidTransforms()</li> |
| <li>Exposed anisotropy min/max clamping for better control of particle fluid rendering, see FlexParams::mAnisotropyMin and FlexParams::mAnisotropyMax</li> |
| <li>Fix for smooth particles not being generated if anisotropy was not enabled</li> |
| <li>Fix for demo mouse picking</li> |
| <li>Fix for flexGetContacts() returning incorrect values, added contact visualization to the demo app</li> |
| <li>Fix for bug in flexGetBounds() which meant it could return bounds with one frame delay, users should now synchronize the flexGetBounds() call like other query methods</li> |
| <li>Fix whitespace on flex.h to play nice with Github’s code view</li> |
| <li>Fix for triangle mesh collision when particle moves in the plane of the triangle incorrectly reporting contact</li> |
| <li>Fix leak when destroying solver</li> |
| <li>Fix for incomplete initialization of FlexExtAssets in the extension creation methods</li> |
| <li>Rename FlexParams::mMaxVelocity -> FlexParams::mMaxSpeed</li> |
| </ul> |
| </div> |
| <div class="section" id="id6"> |
| <h2>0.8.0<a class="headerlink" href="#id6" title="Permalink to this headline">¶</a></h2> |
| <ul class="simple"> |
| <li>Upgrade to CUDA 7.0</li> |
| <li>Linux binaries are now compiled with -fPIC</li> |
| <li>Fix for extensions library not writing velocities correctly</li> |
| <li>Fix for memory leak when using moving convex shapes</li> |
| <li>Optimizations for inflatable constraints to reduce number of kernel launches</li> |
| <li>Added option to control the max number of neighbors stored per-particle, this can reduce memory usage, see flexCreateSolver()</li> |
| </ul> |
| </div> |
| <div class="section" id="id7"> |
| <h2>0.2.5<a class="headerlink" href="#id7" title="Permalink to this headline">¶</a></h2> |
| <ul class="simple"> |
| <li>Fix for vertex normal calculation when using sparse active particle set</li> |
| <li>Fix for division by zero in rest density calculation when fluid rest distance was 0.0</li> |
| <li>Fix for infinite mass particles being moved by kinematic objects</li> |
| <li>Added CUDA force fields to extensions library, see flexExtSetForceFields()</li> |
| <li>Added particle contact reporting API, see flexGetContacts()</li> |
| <li>Added early out to avoid Laplacian smoothing and anisotropy calculation if not using them</li> |
| <li>Added global damping parameter to model viscous drag on particles (not just cloth), see FlexParams::mDamping</li> |
| <li>Added user manual in pdf and chm formats</li> |
| <li>Made enum names consistent, eFlexHost -> eFlexMemoryHost</li> |
| <li>Upgraded to CUB 1.3.2</li> |
| <li>Extended particle phase parameters to allow fine grained control over self-collision and fluid properties, see flexMakePhase()</li> |
| </ul> |
| </div> |
| <div class="section" id="id8"> |
| <h2>0.2.3<a class="headerlink" href="#id8" title="Permalink to this headline">¶</a></h2> |
| <ul class="simple"> |
| <li>Switched to bindless textures, 50% reduction in CPU usage, because of this change Flex now requires an SM3.0 or above GPU</li> |
| <li>Optimized convex grid rasterization by assigning 4 warps/shape, reduces time from 1ms->0.25ms for large shapes</li> |
| <li>Added error mesasge callback, see flexInit()</li> |
| <li>Added flexSetFence()/flexWaitFence() for more fine grained synchronization with Flex GPU work, flexSynchronize() has been removed</li> |
| <li>Added static/dynamic flags for convex shapes to allow prioritising static contacts over dynamic, can be useful to prevent tunnelling through thin shapes</li> |
| <li>Added local/global relaxation to improve convergence for some scenes (see FlexParams::eRelaxationMode)</li> |
| <li>Removed flexGetVorticities(), allows optimizations for vorticity confinement calculation</li> |
| <li>Fix for flexSetSprings(), flexSetTriangles(), and flexSetConvexes() reallocing more often than necessary</li> |
| <li>Fix for flexGetDensities(), and flexGetAnisotropy() not returning the full particle array if using sparse active set</li> |
| <li>Fix for memory leak when instance creation fails in flexExtCreateInstance()</li> |
| <li>Fix for memory leak when setting rigid bodies multiple times</li> |
| <li>Fix for potential GPU crash when using plastic deformation on rigid bodies</li> |
| <li>Smooth vertex normals are now computed for particles belonging to dynamic triangles (cloth), they can be retrieved via flexGetNormals()</li> |
| <li>Optimized CompactObjects in flexExtPushToDevice()</li> |
| <li>Made headers compile with /W4 on MSVC</li> |
| <li>Added debug capture functionality</li> |
| </ul> |
| </div> |
| <div class="section" id="id9"> |
| <h2>0.2.2<a class="headerlink" href="#id9" title="Permalink to this headline">¶</a></h2> |
| <ul class="simple"> |
| <li>Fix for infinite mass particles gaining velocity during collisions</li> |
| <li>Fix bug with planar triangle mesh rasterization</li> |
| <li>Fix for zero-length distance constraints</li> |
| <li>Fix cloth drag and lift causing instability at high velocities</li> |
| <li>Fix for convex grid perf. when there is a single large convex body</li> |
| <li>Improved behaviour when particles are overconstrained (constraint averaging), can reduce jitter for pinned cloth</li> |
| <li>Improved adhesion behaviour for fluids against solids</li> |
| <li>Improved restitution behavior</li> |
| <li>Improved fluid rendering performance by using a smaller bilateral filter kernel</li> |
| <li>Change particle friction to be an absolute parameter instead of a multiplier on dynamic friction</li> |
| <li>Change sort to use async device-device memcpys to avoid stalling host</li> |
| <li>Exposed new parameter to control collision margin against shapes see FlexParams::mShapeCollisionMargin</li> |
| <li>Warning fixes for Linux and Windows</li> |
| <li>Fix z-precision rendering issues in demo</li> |
| <li>Added “Ext” prefix to extensions types</li> |
| <li>Clamp particle velocity to maximum user velocity before prediction step, improves behaviour when interacting with force fields</li> |
| </ul> |
| </div> |
| <div class="section" id="id10"> |
| <h2>0.2.1<a class="headerlink" href="#id10" title="Permalink to this headline">¶</a></h2> |
| <ul class="simple"> |
| <li>Add support for lower dimensional particle rigid bodies (rods, planes)</li> |
| <li>Allow specifying rigid rotations through the solver API</li> |
| <li>Allow separate control of fluid and solid rest distances</li> |
| <li>Add GUI to demo</li> |
| </ul> |
| </div> |
| <div class="section" id="id11"> |
| <h2>0.2.0<a class="headerlink" href="#id11" title="Permalink to this headline">¶</a></h2> |
| <ul class="simple"> |
| <li>Fix for rest density calculation when number of neighbors > than max</li> |
| <li>Add support for async memory copies back to pinned host memory</li> |
| <li>Add functions to allocate pinned host memory, see flexAlloc()</li> |
| <li>Add rigid body support to FlexExtensions</li> |
| <li>Add rigid body SDF collision support</li> |
| <li>Add position level friction</li> |
| <li>Static triangle grid now created on the GPU, see flexSetTriangles</li> |
| <li>Unify triangle collision with rest of the pipline</li> |
| <li>Exposed a new parameter to run a second collision pass against triangle meshes, see FlexParam::mEnableCCD</li> |
| <li>Optimized rigid body solve using CUB parallel reductions</li> |
| <li>Fix for solve springs when some particles have infinite mass</li> |
| <li>Reduce allocations in flexSetConvexes</li> |
| <li>Fix plastic deformation for rigids</li> |
| <li>Switch to /MT for FlexExtensions library</li> |
| </ul> |
| </div> |
| <div class="section" id="id12"> |
| <h2>0.1.0<a class="headerlink" href="#id12" title="Permalink to this headline">¶</a></h2> |
| <p>Initial release</p> |
| </div> |
| </div> |
|
|
|
|
| </div> |
| <div class="clearer"></div> |
| </div> |
| <div class="col-md-1"></div> |
| </div> |
| <div class="masthead"> |
| <div class="row"> |
| <ul class="breadcrumb"> |
| <li><a href="index.html">NVIDIA Flex 1.2.0 documentation</a></li> |
| </ul> |
| </div> |
| </div> |
|
|
| <footer> |
| <div class="footer-boilerplate"> |
| <div class="row"> |
| <div class="boilerplate"> |
| Copyright © 2014, NVIDIA Corporation | <a href="http://www.nvidia.com/object/about-nvidia.html" onclick="s_objectID="http://www.nvidia.com/object/about-nvidia.html_1";return this.s_oc?this.s_oc(e):true">About NVIDIA </a> | <a href="http://www.nvidia.com/object/legal_info.html" onclick="s_objectID="http://www.nvidia.com/object/legal_info.html_1";return this.s_oc?this.s_oc(e):true">Legal Information </a> | <a href="http://www.nvidia.com/object/privacy_policy.html" onclick="s_objectID="http://www.nvidia.com/object/privacy_policy.html_1";return this.s_oc?this.s_oc(e):true">Privacy Policy </a> |
| </div> |
| </div> |
| </div> |
| </div> |
| </footer> |
|
|
|
|
| <script type="text/x-mathjax-config"> |
| MathJax.Hub.Config({ |
| extensions: ["tex2jax.js"], |
| jax: ["input/TeX", "output/HTML-CSS"], |
| tex2jax: { |
| processEscapes: true, |
| skipTags: ["script","noscript","style","textarea"] |
| }, |
| "HTML-CSS": { availableFonts: ["TeX"] }, |
| TeX: { |
| Macros: { |
| Lrg: ['\\displaystyle{#1}', 1, ""] |
| } |
| } |
| }); |
| </script> |
|
|
|
|
| <script type="text/javascript" async |
| src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-MML-AM_CHTML"> |
| </script> |
|
|
| <script> |
| var treestatename = 'GWDocsTreeState'; |
| var protocol = location.href.split('/')[0].toLowerCase(); |
| var storage; |
| if (protocol.substring(0,4) == 'http') { |
| storage = $.cookieStorage; |
| storage.setPath('/'); |
| } else { |
| storage = $.localStorage; |
| } |
| |
| if (storage.isEmpty(treestatename)) { |
| storage.set(treestatename, {}); |
| } |
| |
| var treestate = storage.get(treestatename); |
| |
| $.each($("#sidebar_toc ul li"), toc_walker); |
| |
| function toc_walker(key, value) { |
| var handleSpan = $("<span></span>") |
| .addClass("toc_handle").prependTo(value); |
| handleSpan.attr("id", $(value).closest("div").attr("id") + "." + key); |
| |
| if($(value).has("ul li").size() > 0) { |
| var id = handleSpan.attr("id"); |
| if (!(id in treestate)) { |
| treestate[id] = false; |
| } |
| handleSpan.addClass("toc_expanded").click(function() { |
| $(this).toggleClass("toc_expanded toc_collapsed").siblings("ul").toggle(); |
| treestate[$(this).attr('id')] = $(this).hasClass('toc_expanded'); |
| storage.set(treestatename, treestate); |
| }); |
| if(!($(this).hasClass('current') || treestate[id])) { |
| handleSpan.click(); |
| } |
| if($(this).hasClass('current')) { |
| treestate[handleSpan.attr('id')] = handleSpan.hasClass('toc_expanded'); |
| storage.set(treestatename, treestate); |
| } |
| } |
| } |
| </script> |
| </body> |
| </html> |