几何工具引擎(geometry tool engine)
创始人
2024-05-25 05:03:20
0

Geometric Tools

Geometric Tools

欢迎访问Geometric Tools的官方网站,这是数学、几何、图形、图像分析和物理领域计算的源代码集合。该引擎是用C++14编写的,因此,可以移植地访问内核上多线程编程的标准构造。该引擎还支持使用通用GPU编程(GPGPU)的高性能计算。部分代码在各种书籍以及本网站提供的文档中进行了描述。源代码是免费下载的,包含在Boost许可证中。发布时间表和相关信息如下所示。

如果使用Linux和OpenGL,则需要OpenGL 4.5或更高版本。为了满足这一限制,我使用NVIDIA专有驱动程序,而不是Nouveau开源驱动程序。在没有指定版本的情况下运行示例应用程序的任何尝试都将以控制台窗口输出的方式正常失败:需要OpenGL 4.5。

geometry tool engine几何工具引擎6.5。数学代码位于仅标题的库(GTMathematics)中。提供了具有基于GPU的实现的数学库(GTMathematicsGPU)。基于CPU的通用图形引擎代码位于其自己的库(GTGraphics)中。DirectX 11包装器用于图形(GTGraphicsDX11)和应用程序(GTApplicationsDX11)。OpenGL 4.5包装器用于图形(GTGraphicsGL45)和应用程序(GTApplications GL45)。

•2022年12月14日发布

•Microsoft Windows 10或11;DirectX 11.1或OpenGL 4.5;Microsoft Visual Studio 2019和2022;Windows 15.0.1版C++Clang编译器;英特尔C++编译器2023

•Ubuntu 22.04.1 LTS;OpenGL 4.5、NVIDIA图形驱动程序;Visual Studio代码1.49.2;CMake 3.15.2;通用条款11.2.0

•Fedora 37;OpenGL 4.5、NVIDIA图形驱动程序;Visual Studio代码1.49.2;CMake 3.22.2;一般条款12.2.1

源代码分发可以从该网站下载,但也可以在GitHub上的Geometric Tools上下载。我们网站上的zip文件是一个快照,在进行了大量更改后发布。然而,GitHub存储库始终包含在GTE中进行的最新修复和更新。

几何工具库。几何工具的动机是我在医学图像处理方面的研究生学习;然后它被命名为MAGIC软件(我的替代图形和图像代码)。当我进入3D视频游戏行业时,我在图像代码上花费的时间更少,而在图形、物理和数学代码上花费了更多的时间。大部分代码是帮助在Usenet论坛comp.graphics.algorithms上发布问题的人的结果。近年来的技术支持问题向我表明,数学和几何代码是人们使用最多的,所以我现在将重点关注这些主题。

几何工具库(GTL)将对GTE中的数学和几何代码进行修改,然后在时间允许的情况下添加新代码。我试图简化代码,提供一致的命名和接口,并扩展功能。一些GTE几何代码已经包含多线程,当数字类型涉及有理算术和任意精度算术时尤其有用,我计划在更多算法中包含多线程。对于使用HLSL、GLSL和CUDA的基于GPGPU的实现,以及使用Intel的SSE或AVX的基于SIMD的实现,将提供单独的代码。我将为理性和符号计算的混合添加一个框架,这在我的《稳健和无误差几何计算》一书中有所描述。

数学和几何代码库具有相关文档和单元测试套件。图形和应用程序的代码仅存在于说明GTL算法的示例。这些将包含在单独的库中,这些库按原样提供,没有单元测试支持。GTL源代码将免费下载,并受Boost许可证的约束。

我没有发布GTL的可靠估计日期。我会在这里宣布。GTL代码将在GitHub上提供。

该引擎中包含图形、图像、数学 (线性代数、估计、数值、计算几何、闭包、曲线、曲面、体积、距离函数几何图元、插值、相交、数值方法、投影)、物理,具体的内容如下:

Geometric Tools: Documentation

Graphics:

Reconstructing a Height Field From a Normal Map

Alhazen’s Problem: Reflection Point on a Sphere

Imagics:

Extraction of Level Sets from 2D Images

Extraction of Level Sets from 3D Images

Fast Gaussian Blurring

Integer-based Ellipse Drawing

Integer-Based Rotations of Images

Level Set Extraction from Gridded 2D and 3D Data

Medial-Based Morphing for 2D Binary Objects

Theory of Ridges

Skeletonization of 2D Binary Images

Mathematics/Algebra:

Constrained Quaternions using Euler Angles

Converting Between Coordinate Systems

Euler Angle Formulas

The Laplace Expansion Theorem: Computing the Determinants and Inverses of Matrices

A Linear Algebraic Approach to Quaternions

Computing Orthonormal Sets in 2D, 3D, and 4D

Solving Systems of Polynomial Equations

Quaternion Algebra and Calculus

Rotation Representations

Constructing Rotation Matrices Using Power Series

Interpolation of Rigid Motions in 3D

Mathematics/Approximation:

Approximating an Ellipse by Circular Arcs

Fitting 3D Data with a Helix

Least Squares Fitting of Data by Linear or Quadratic Structures

Least Squares Fitting of Data with Polynomials

Least-Squares Fitting of Data with B-Spline Curves

Least-Squares Fitting of Data with B-Spline Surfaces

Least-Squares Reduction of B-Spline Curves

Least Squares Fitting of Segments by Line or Plane

Fitting 3D Data with a Torus

Least Squares Fitting of Parallel Lines to Points in 2D

Fit a Cone to Ellipse and Points

Fit a Convex Quadrilateral by a Rectange

Mathematics/Arithmetic:

GTEngine: Arbitrary Precision Arithmetic

Mathematics/Computational Geometry:

Boolean Operations on Intervals and Axis-Aligned Rectangles

Clipping a Mesh Against a Plane

Geodesics On Triangle Meshes

Mesh Differential Geometry

The Minimal Cycle Basis for a Planar Graph

Polyline Reduction

Tessellation of a Unit Sphere Starting with an Inscribed Convex Triangular Mesh

Triangulation by Ear Clipping

Mathematics/Containment:

AABB of a Transformed AABB

Centers of a Simplex (circumscribed/inscribed balls)

Largest Fixed-Aspect, Axis-Aligned Rectangle Inscribed in a Convex Quadrilateral

Minimum-Area Rectangle Containing a Set of Points

Minimum-Volume Box Containing a Set of Points

Mathematics/Curves, Surfaces, and Volumes:

A Relationship Between Minimum Bending Energy and Degree Elevation for Bézier Curves

Bicubic Bézier Exact Interpolation

Least-Squares Fitting of Data with B-Spline Curves

Least-Squares Fitting of Data with B-Spline Surfaces

Least-Squares Reduction of B-Spline Curves

Classifying Quadrics using Exact Arithmetic

Geodesics on a Parameterized Surface

Kochanek-Bartels Cubic Splines

Moving Along a Curve with Specified Speed

Natural Spline Interpolation

Representing a Circle or Sphere with NURBS

Principal Curvatures of Surfaces

Computing Geodesics on a Riemannian Manifold

Mathematics/Distance:

Distance from an Oriented Box to a Cone Frustum

Distance Between Ellipses in 2D

Distance Between Two Ellipses in 3D

Distance Between Two Line Segments in 3D

Distance from Line to Rectangle in 3D

Distance from Linear Component to Tetrahedron

Distance Between Point and Triangle in 3D

Distance from a Point to an Ellipse, an Ellipsoid, or a Hyperellipsoid

Distance Between Point and Line, Ray, or Line Segment

Distance from Point to Orthogonal Frustum

Distance to Circles in 3D

Mathematics/Functions:

An Approximation for the Inverse Square Root Function

Derivative Approximation by Finite Differences

A Fast and Accurate Estimate for SLERP

Approximations to Rotation Matrices and Their Derivatives

A Fast and Accurate Algorithm for Computing SLERP (Journal of Graphics Tools)

Mathematics/Geometric Primitives:

Information About Ellipses

Platonic Solids (parameters, vertices, mesh connectivity)

Mathematics/Interpolation:

Akima Interpolation for Nonuniform 1D Data

B-Spline Interpolation on Lattices

C1 Quadratic Interpolation of Meshes

Thin Plate Splines

Globally C^s and Locally Controllable Interpolation on n-Dimensional Lattices

Mathematics/Intersection:

The Area of Intersecting Ellipses

Clip a Convex Polygon by a Hyperplane

Dynamic Collision Detection using Oriented Bounding Boxes

Intersection of Orthogonal View Frustum and Oriented Bounding Box using Separation Axis Testing

Intersection of a Box and a Cone or Cone Frustum

Intersection of a Box and a Finite Cylinder

Intersection of Box and Ellipsoid

Intersection of an Infinite Cylinder and a Plane

Intersection of Infinite Cylinders

Intersection of Linear and Circular Components in 2D

Intersection of a Line and a Box

Intersection of a Line and a Cone

Intersection of Moving Circle and Rectangle

Intersection of Moving Sphere and Box

Intersection of Moving Sphere and Triangle

Intersection of Cylinders

Intersection of Ellipses

Intersection of Ellipsoids

Intersection of Rectangle and Ellipse

Intersection of Objects with Linear and Angular Velocities using Oriented Bounding Boxes

Intersection of a Sphere and a Cone

Intersection of Swept Ellipses and Swept Ellipsoids

Intersection of a Triangle and a Cone

Intersection of a Triangle and a Cylinder

Intersection of Convex Objects: The Method of Separating Axes

Mathematics/Numerical Methods:

Convex Quadratic Programming

Low-Degree Polynomial Roots

Numerical Integration

A Robust Eigensolver for 2x2 Symmetric Matrices

A Robust Eigensolver for 3x3 Symmetric Matrices

Mathematics/Projection:

Parallel Projection of an Ellipse

Perspective Mappings

Perspective Projection of an Ellipse onto a Line in 2D

Perspective Projection of an Ellipse onto a Plane in 3D

Perspective Projection of an Ellipsoid

Reconstructing an Ellipsoid from its Perspective Projection Onto a Plane

Physics:

Extremal Queries using BSP Trees

Particle Motion on a Height Field

Polyhedral Mass Properties (Revisited)

Rough Plane Analysis

Stability Analysis for Systems of Differential Equations

Computing Impulsive Forces for Colliding Contact

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
客厅放八骏马摆件可以吗(家里摆... 今天给各位分享客厅放八骏马摆件可以吗的知识,其中也会对家里摆八骏马摆件好吗进行解释,如果能碰巧解决你...
美团联名卡审核成功待激活(美团... 今天百科达人给各位分享美团联名卡审核成功待激活的知识,其中也会对美团联名卡审核未通过进行解释,如果能...