用于动画交互软对象的模拟工具

  • k1_407480
    了解作者
  • 1.1MB
    文件大小
  • zip
    文件格式
  • 0
    收藏次数
  • VIP专享
    资源类型
  • 0
    下载次数
  • 2022-04-09 02:09
    上传日期
软软的模拟工具和库,用于动画刚性和软物体(包括布料)受到与光滑隐式表面摩擦接触的影响。此存储库包含[1]的参考实现。Softy 及其文档正在进行中,其中包含大量实验代码和未完成的原型以供未来工作。一些相对独立的实用程序已经被排除在这个 repo 之外,以简化实现并使其部分用于其他目的。请注意,其中一些已记录在案(例如autodiff 、hdkrs ),但有些则没有(例如gut )。概述包含的工具和库在目录中组织如下隐式--- Rust crate 用于生成局部和全局隐式表面。hiddens-hdk ---一个用于隐式Rust 板条箱的Houdini插件。cimplicits ---隐式板条箱的 AC 包装器。softy --- Rust crate 用于模拟交互的软(固体和壳)和刚性对象。多愁善感,HDK ---一个霍迪尼插件的多愁善感锈箱。这些工具主要是用Rust编写的,带有 C/C++ 包装器。隐式曲面待定软组织和布料的有限元模拟待定Houdini插件待定参考[1] Egor Larionov、叶凡和 Dinesh K. Pai。2021. 光滑弹性固体上的摩擦接触。ACM 翻译。
elrnv-softy.zip
内容介绍
# Softy Simulation tools and libraries for animating rigid and soft objects (including cloth) subject to frictional contacts against smooth implicit surfaces. This repository includes a reference implementation for [\[1\]]. Softy and its documentation is a work in progress and contains loads of experimental code and unfinished prototypes for future works. Some relatively independent utilities have already been factored out of this repo in an effort to simplify the implementation and make parts of it useful for other purposes. Beware that some of these are documented (e.g. [`autodiff`](https://github.com/elrnv/autodiff.git), [`hdkrs`](https://github.com/elrnv/hdkrs.git)), but some are not (e.g. [`gut`](https://github.com/gut)). # Overview The included tools and libraries are organized in directories as follows - [implicits](implicits) --- A Rust crate to generate local and global implicit surfaces. - [implicits-hdk](implicits-hdk) --- A [Houdini](https://sidefx.com/products/houdini) plugin for the [implicits](implicits) Rust crate. - [cimplicits](cimplicits) --- A C wrapper for the [implicits](implicits) crate. - [softy](softy) --- A Rust crate for simulating interacting soft (both solid and shell) and rigid objects. - [softy-hdk](softy-hdk) --- A [Houdini](https://sidefx.com/products/houdini) plugin for the [softy](softy) Rust crate. These tools are mainly written in [Rust](https://www.rust-lang.org) with C/C++ wrappers. ## Implicit Surfaces TBD ## Finite element simulation of soft tissues and cloth TBD ## Houdini Plugins TBD # References - [\[1\] Egor Larionov, Ye Fan, and Dinesh K. Pai. 2021. Frictional Contact on Smooth Elastic Solids. ACM Trans. Graph. 40, 2, Article 15 (April 2021), 17 pages. DOI:https://doi.org/10.1145/3446663][\[1\]], # C API conventions This section outlines the naming conventions for any public C symbols exposed from Rust libraries. Let `pfx` be the desired prefix for the library at hand. For instance we may chose `hr` as the prefix for hdkrs. The following conventions apply to all public facing C API symbols. This includes Rust code with a C public API. Private symbols in Rust code need not be prefixed. * Function names should be in `snake_case` and prefixed with `pfx_`. * Struct names should be in `TitleCase` and prefixed with `PFX_`. * C Enums should be in `TitleCase` and prefixed with `PFX`. Note that some Rust enums will be bound to C structs, in which case their prefix should be `PFX_`. * Enum variants should be in `SCREAMING_SNAKE_CASE` and prefixed with `PFX_`. Note that we must set the language for cbindgen to be `Cxx` or set `cpp_compat=true`. Otherwise, without proper `extern` annotations in the generated C headers, the exported function symbols will be mangled by the C++ compiler and effectively lost. Ideally we would want to wrap any raw C calls in safer C++ wrappers. # License This repository is licensed under the [Mozilla Public License, v. 2.0](https://mozilla.org/MPL/2.0/). # Contributing See [CONTRIBUTING.md](CONTRIBUTING.md) for details. [\[1\]]: https://doi.org/10.1145/3446663
评论
    相关推荐