-
Notifications
You must be signed in to change notification settings - Fork 0
/
release_notes.txt
executable file
·344 lines (296 loc) · 17.3 KB
/
release_notes.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
/*! \page pagereleasenotes Release Notes
\verbatim
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Blast(tm) SDK 1.1.4 (24-Oct-2018)
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Changes
-------
* Unity plugin example updated to work with latest Blast SDK.
New Features
------------
* Authoring tools:
** Island detection function islandDetectionAndRemoving has a new parameter, createAtNewDepth.
** Bonds created between island-based chunks.
** Added "agg" (aggregate) commandline switch to AuthoringTool. This allows multiple convex hulls per chunk to be generated.
** Damage pattern authoring interface.
Bug fixes
---------
* Build working on later C++ versions (e.g. deprecated UINT32_MAX removed).
* Authoring tools:
** Fixed .obj material loading when obj folder is same as working directory.
** Degenerate face generation fix.
** Fixed memory leak in FractureTool.
* Proper memory releasing in samples.
* Single-actor serialization bugfix when actor has world bonds.
* Updated PhysX package for Win64 (vc14 and vc15) and Linux64 to 3.4.24990349, improving GRB behavior and fixing GRB crash/failure on Volta and Turing.
* Documented JSON collision export option introduced in previous version.
Known Issues
------------
* Damage shaders in extensions can miss bonds if the damage volume is too small.
* Authoring code does not use the user-defined allocator (NvBlastGlobals) exclusively.
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Blast(tm) SDK 1.1.3 (30-May-2018)
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Changes
-------
* No longer testing Win32 project scripts. Note generate_projects_vc14win32.bat has been renamed generate_projects_vc14win32_untested.bat.
* Using a PhysX Packman package that no longer includes APEX.
* Updated documentation:
* Authoring documentation mentions restrictions for meshes to be fractured.
* Added BlastTool reference to README.md.
* Updated documentation paths in README.md.
* Using Packman5 for external packages.
* Authoring tools:
* In NoiseConfiguration, surfaceResolution changed to samplingInterval. The latter is reciprocal of resolution and defined for all 3 axes.
* Improved cutout robustness.
* Exporter (used by both authoring tools and ApexImporter) has a JSON collision export option.
New Features
------------
* VC15 Win64 project scripts. Run generate_projects_vc15win64.bat.
* Authoring tools:
* Noisy cutout fracture.
* Conic cutout option (tapers cut planes relative to central point).
* Cutout option "useSmoothing." Add generatad faces to the same smoothing group as original face without noise.
* Periodic cutout boundary conditions.
Bug fixes
---------
* Packman target platform dependencies no longer pulling windows packages into other platforms.
* Fixed bond generation for cutout fracture.
Known Issues
------------
* Damage shaders in extensions can miss bonds if the damage volume is too small.
* Authoring code does not use the user-defined allocator (NvBlastGlobals) exclusively.
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Blast(tm) SDK 1.1.2 (26-Jan-2018)
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Changes
-------
* Improvements to uniteChunks for hierarchy optimization.
* NvBlastExtAuthoringFindAssetConnectingBonds optimized.
* APEX dependency has been removed (ExtImport used it). Now ExtImport has a built-in NvParameterized read that can load an APEX Destructible asset.
New Features
------------
* FractureTool::setChunkMesh method.
* Distance threshold added to NvBlastExtAuthoringFindAssetConnectingBonds.
* NvBlastExtExporter: IMeshFileWriter::setInteriorIndex function, for control of interior material.
* Cutout and cut fracture methods: NvBlastExtAuthoringCreateCutoutSet and Nv::Blast::CutoutSet API, FractureTool::cut and FractureTool::cutout APIs.
* NvBlastExtAuthoring:
* NvBlastExtAuthoringCreateMeshFromFacets function.
* NvBlastExtUpdateGraphicsMesh function.
* NvBlastExtAuthoringBuildCollisionMeshes function.
* UV fitting on interior materials using new FractureTool::fitUvToRect and FractureTool::fitAllUvToRect functions.
* Multi-material support in OBJ file format.
Bug fixes
---------
* Fixed bug causing normals on every other depth level to be flipped when exporting Blast meshes.
* Fixed bug where faces are missed after hierarchy optimization on a sliced mesh.
* Fixed subtree chunk count generated in Nv::Blast::Asset::Create (led to a crash in authoring tools, fracturing a pre-fractured mesh).
* Fixed a crash when loading an obj with bad material indices.
* Fixed Actor::split so that visibility lists are correctly updated even when the number of split actors exceeds newActorsMaxCount.
Known Issues
------------
* Damage shaders in extensions can miss bonds if the damage volume is too small.
* Authoring code does not use the user-defined allocator (NvBlastGlobals) exclusively.
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Blast(tm) SDK 1.1.1 (10-Oct-2017)
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Changes
-------
* NvBlastProgramParams moved to NvBlastExtDamageShaders
* Materials removed from NvBlastTk
New Features
------------
* Damage shader acceleration structure
* Extended support structures via new asset merge functions in NvBlastExtAssetUtils
* Ability to scale asset components when merging assets with NvBlastExtAssetUtilsMergeAssets
* NvBlastExtAuthoring
* Option to fit multiple convex hulls to a chunk (uses VHACD)
* deleteAllChildrenOfChunk and uniteChunks APIs
* Triangle damage shader for swept segments
* Impact damage spread shaders
Bug fixes
---------
* Linux build fixes
* NvBlastExtAuthoring
* Fracturing tools chunk index fix
* VoronoiSitesGeneratorImpl::generateInSphere fix
* More consistent use of NVBLAST_ALLOC and NVBLAST_FREE
* Boolean tool bug fix
Known Issues
------------
* Damage shaders in extensions can miss bonds if the damage volume is too small.
* Authoring code does not use the user-defined allocator (NvBlastGlobals) exclusively.
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Blast(tm) SDK 1.1 (28-Aug-2017)
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Changes
-------
* VC12 is no longer supported.
* New license header, consistent with PhysX license header.
* New serialization extension. NvBlastExtSerialization is now a modular serialization manager. It loads serializers sets for low-level, Tk, and ExtPx. Each serializer handles a particular file format and object type. Currently the universally available format for all object types is Cap'n Proto binary. The file format is universal, as it uses a header to inform the serialization manager which serializer is needed to deserialize the contained data. All authoring and import tools write using this format to files with a ".blast" filename extension.
* Corresponding to the new serialization, the old formats have been deprecated. In particular, the DataConverter tool has been removed. Instead see LegacyConverter in the New Features section.
* TkSerializable virtual base class has been removed. TkAsset and TkFamily are now derived directly from TkIdentifiable. Serialization functions have been removed, replaced by the new serialization extension.
* ExtPxAsset serialization functions have been removed, replaced by the new serialization extension.
* World bonds. A bond descriptor can now take the invalid index for one of its chunkIndices. This will cause an additional support graph node to be created within an asset being created with this descriptor. This node will not correspond to any chunk (it maps to the invalid index in the graph's chunkIndices array). Actors that contain this new "world node" may be kept static by the user, emulating world attachment. This is easily tested using the new low-level function NvBlastActorIsBoundToWorld.
* With the addition of world bonds (see above), the NvBlastExtImport extension no longer creates an extra "earth chunk" to bind chunks to the world. Instead, it creates world bonds.
* ExtPxAsset now contains an NvBlastActorDesc, which is used as the default actor descriptor when creating an ExtPxFamily from the asset.
* TkFramework no longer has its own allocator and message handler. Instead, this is part of a new NvBlastGlobals API. This way, extensions and TkFramework may share the same allocator.
* SampleAssetViewer
* Physics simulation now runs concurrently with graphics and some of the sample/blast logic.
* New Damage tool added: line segment damage
* Damage tool radius can be set individually for each tool (radial, cutter, line segment, hierarchical).
* Cubes now removed when a scene is reloaded.
* Cube throw velocity can be "charged" by holding down the 'F' key.
* New damage system built around "health," see API changes in NvBlastExtShaders and changes in NvBlastExtImpactDamageManager.
* NvBlastExtShearGraphShader uses a chunk-based method to find the closest graph node, improving performance.
* TkGroup no longer uses physx::PxTaskManager interface for task management. Instead, a TkGroupWorker interface has been added. The NvBlastExtPhysX extension uses the physx::PxTaskManager to implement this interface.
* Better error handling in AuthoringTool (stderr and user error handler).
* More consistent commandline switches in AuthoringTool and ApexImporter (--ll, --tk, --px flags).
* Various small clean-ups.
New Features
------------
* NvBlastExtAssetUtils extension
* Merge multiple assets into one.
* Add "world bonds" to an asset (see "World bonds" in the Changes section).
* Transform an NvBlastAsset's geometric data in-place.
* NvBlastExtAuthoring
* Open edge detection.
* Rotation of voronoi cells used for fracturing.
* "Globals" code (under sdk/globals). Includes a global allocator, message handler, and profiler API used by TkFramework and extensions.
* NvBlastExtStress extension, a PhysX-independent API for performing stress calculations with low-level Blast actors.
* NvBlastActorIsSplitRequired() function for low-level actors. If this function returns false, NvBlastActorSplit() may be skipped as it will have no effect.
* NvBlastExtShaders
* New "Segment Radial Damage" shader. Damages everything within a given distance of a line segment.
* New NvBlastExtExporter extension, used commonly by import and authoring tools. Allows collision data to be stored in one of three ways:
* JSON format.
* FBX mesh format (seprate file).
* FBX mesh format in a second "collision" layer, alongside the graphics mesh nodes corresponding to Blast chunks.
* LegacyConverter tool has been added, which converts .llasset, .tkasset, .bpxa, .pllasset, .ptkasset, and .pbpxa asset files to the new .blast format using the universal serialization scheme in the new NvBlastExtSerialization extension.
* NvBlastExtAuthoring
* Mesh cleaner, tries to remove self intersections and open edges in the interior of a mesh.
* Ability to set interior material to existing (external) material, or a new material id.
* Material ID remapping API.
Bug fixes
---------
* NvBlastExtAuthoring
* Slicing normals fix.
* Various instances of &array[0] to get the data buffer from a std::vector now use data() member function. This had led to some crashes with empty vectors.
* SampleAssetViewer
* Fixed dragging kinematic actor.
* Now loads the commandline-defined asset also when sample resources were not downloaded yet.
* Serialization documented.
* Fixed smoothing groups in FBX exporter code.
* Impulse passing from parent to child chunks fixed.
* Reading unskinned fbx meshes correctly.
* Collision hull generation from fbx meshes fixed.
* Win32/64 PerfTest crash fix.
Known Issues
------------
* Damage shaders in extensions can miss bonds if the damage volume is too small.
* Authoring extension does not perform convex decomposition to fit chunks with multiple collision hulls.
* Authoring code does not use the user-defined allocator (NvBlastGlobals) exclusively.
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Blast(tm) SDK 1.0 (24-Feb-2017)
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Changes
-------
* tclap, imgui, moved to Packman package
* Models and textures for the sample application have been moved to Packman
* Packman packages with platform-specific sections have been split into platform-specific packages
* Improvements to fracturing tools
* TkJoint events no longer contain actor data
* API cleanup:
* NvBlastActorCreate -> NvBlastFamilyCreateFirstActor
* NvBlastActorRelease -> NvBlastActorDeactivate
* NvBlastActorDeserialize -> NvBlastFamilyDeserializeActor
* Functions that operate on an object start with NvBlast[ObjectName]
* Functions that create an object purely from a desc start with NvBlastCreate
* Functions that get scratch start with NvBlast[Object]GetScratchFor[functionname], etc.
* Object functions take the object as the first input parameter (non-optional output parameters always come first)
* Removal of NvBlastCommon.h
* More consistent parameter checking in low-level API
* NvBlastAlloc and NvBlastFree functions have been removed. Blast low-level no longer does (de)allocation. All memory is passed in and managed by the user
* All Blast low-level functions take a log (NvBlastLog) function pointer (which may still be NULL)
* Authoring tool now handles FBX mesh format
* Constructor for TkAssetDesc sets sane defaults
* Sample uses skinning for the 38k tower, for perf improvement
* Further optimzations to sample, including using 4 instead of 2 CPU cores and capping the actor count at 40k
* Linux build (SDK and tests)
* Renamed TkJointUpdateEvent::eventSubtype -> TkJointUpdateEvent::subtype
* "LowLevel" extension renamed "ConvertLL"
* Renamed TkEventReceiver -> TkEventListener
New Features
------------
* Serialization enabled for XBoxOne
Bug fixes
---------
* Can change worker thread count in CPU dispatcher
* TkJoints created from the TkFramework::createJoint function are now released when the TkFramework is released
* Various fixes to unit tests
* Crash fix in CPU dispatcher
* Returning enough buffer space to handle hierarchical fracturing cases
Known Issues
------------
* Serialization requires documentation
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Blast(tm) SDK 1.0 beta (24-Jan-2017)
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Changes
-------
* Material API simplified (NvBlastProgramParams)
* Nv::Blast::ExtPhysics renamed Nv::Blast::ExtPx
* Various small changes to the low-level API (function renaming, argument list changes, etc.)
* Extensions libraries reconfigured according to major dependencies and functionality:
* Authoring
* Import (depends on PhysX and APEX)
* PhysX (depends on PhysX)
* Serialization (depends on PhysX and Cap'n Proto)
* Shaders
* Source folder reorganization: low-level, Tk, and extensions all under an sdk folder
New Features
------------
* TkFamily serialization
* Versioned data serialization extensions for both low-level and Tk, based on Cap'n Proto
* TkJoint API, can create joints at runtime, attachments to Newtonian Reference Frame supported
* CMake projects
* PackMan used for dependencies
* Per-bond and per-chunk health initialization
* XBoxOne and Windows support for perf zones
* Timers in Tk
* Stress solver (automatic bond breaking)
* ExtPx asset serialization, combined TkAsset + PhysX collision meshes (.bpxa files)
Removed Features
----------------
* TkComposite objects. Composites may be created using the new TkJoint API in the TkFramework
Known Issues
------------
* Serialization requires documentation
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Blast(tm) SDK 1.0 alpha (21-Oct-2016)
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Features
--------
* Blast (low-level) library
* BlastTk (high-level) library
* BlastExt (extensions) library including:
* AssetAuthoring
* DataConverter
* BlastID Utilities
* ApexImporter Utilities
* Materials
* Physics Manager
* Sync Layer
* Tools:
* ApexImporter
* DataConverter
* AuthoringTool
* Samples:
* SampleAssetViewer
Known Issues
------------
* Documentation incomplete
* TkFamily cannot be serialized
* Data conversion utility for Tk library does not exist
* Material API is still changing
\endverbatim
*/