PhysX物理引擎(3)Rigidbody Dynamics

本文主要介绍PhysX刚体动力学相关的内部机制和使用方法。 PhysX物理引擎系列记录了在实际项目中使用Nvdia PhysX 3.4物理引擎(Code, Doc)的一些经验,有不少对官方资料的补充。 Warm-up Let’s start with some key concepts: Both Kinematic and Dynamic rigidbodies are represented as PxRigidDynamic in PhysX. You can switch between them at runtime using PxRigidBody::setRigidBodyFlag(PxRigidBodyFlag::eKINEMATIC, true). Kinematic and Static actors remain stationary unless explicitly moved in code. Moving Static actors can result in incorrect collision behavior with dynamic actors. When moving Kinematic actors, always use PxRigidDynamic::setKinematicTarget each frame instead of PxRigidActor::setGlobalPose to ensure correct collision detection with dynamic actors. This post focuses on dynamic rigidbody movement, covering topics such as force and torque, gravity, sleeping, and more. ...

September 4, 2023 · 3 min

PhysX物理引擎(2)Collision

本文主要介绍PhysX碰撞检测的一些内部机制和使用方法。 PhysX物理引擎系列记录了在实际项目中使用Nvdia PhysX 3.4物理引擎(Code, Doc)的一些经验,有不少对官方资料的补充。 Warm-up Static, Kinematic & Dynamic Static colliders are non-movable. In fact, they are not rigidbody, just PxRigidStatic. Kinematic and dynamic rigidbody are both PxRigidDynamic, and can switch to each other at runtime by setRigidBodyFlag(PxRigidBodyFlag::eKINEMATIC, true/false). The biggest difference is that kinematic rigidbody behaves like infinite mass, and will not move by external force. Instead, you call MovePosition on it. Dynamic rigidbody is the only type we can AddForce to, which has mass, center of mass, and inertia tensor to simulate a natural movement with Newton’s laws of motion. classDiagram PxRigidActor <-- PxRigidStatic PxRigidActor <-- PxRigidBody PxRigidBody <-- PxRigidDynamic PxRigidActor *.. PxShape class PxRigidBody { PxRigidBodyFlag } class PxShape { PxShapeFlag } We cannot make a rigidbody without a shape. Shapes are tangible, with a real size. ...

August 11, 2023 · 3 min

深入 LossyScale

本文是PhysX物理引擎系列的番外篇,其实要弄明白一个3D数学问题:如何处理父节点带有非均匀缩放、子节点带有旋转时,子节点的最终大小和形态。 问题源自笔者在修改物理引擎为其添加scale属性时遇到的一个bug。解决后对WorldScale为什么叫做LossyScale、空间变换和基变换有了更深的理解。 ...

July 19, 2023 · 7 min

PhysX零值Crash

本文是PhysX物理引擎系列的特别篇,记录了影响近一周的物理引擎底层概率性Crash的定位过程和修复方法,具有很高的实践参考价值。“有多高?”“三四层楼那么高啦!” 发现问题 运维同事发现体验服和某区在新版本上线一小段时间后,会出现概率不高但持续出现的进程Crash。这里先简单说明一下:我们会在一台机器上部署多个GameServer实例,每个GameServer实例进程同时进行着多场不同的Match,如果某一场Match出现了业务层Crash,并不会影响其他Match。但如果是C++物理库内出现Crash,则会同时中止其他正常运行的Match,对玩家的影响较大。 ...

June 13, 2023 · 5 min

洞见·为什么佛学是真的

当看到书名时,我承认内心有一丝挑战欲。受过系统的科研训练的人,往往对“真的”有“洁癖”。作者Robert Wright也认识到这一点,所以在开头便说,本书可以看作佛学观点的进化心理学解释。并不探讨轮回、神明这些超自然的部分,而探讨自然主义部分。并不探讨佛教各分支的细枝末节,而探讨核心思想。不要用佛教教义使自己成为更好的佛教徒,用它来做更好的自己。正是这句话让我有了继续读下去的意愿。 ...

June 6, 2023 · 8 min

PhysX物理引擎(1)Scene Query

本文主要介绍PhysX场景查询的一些内部机制和使用方法。 PhysX物理引擎系列记录了在实际项目中使用Nvdia PhysX 3.4物理引擎(Code, Doc)的一些经验,有不少对官方资料的补充。 Warm-up A Scene in PhysX engine is a container of objects in a hierachical manner. --- title: Scene Hierachy --- classDiagram direction LR class world class scene { Flags Gravity ... } class actor { ActorFlags Name GlobalPose ... } class shape { Flags GeometryType LocalPose QueryFilterData SimulationFilterData ... } class geometry { ... } class material { friction restitution damping } world "1"*.. "N"scene scene "1"*.. "N"actor actor "1"*.. "N"shape shape o--geometry shape o--material There are only position and rotation in GlobalPose and LocalPose, no “scale”. Scale only reflects on geometry’s actual size. ...

May 26, 2023 · 3 min

用AI学AI.2

上一篇我们聊了AI模型的分类和大致架构,目前最火的两类模型LLM和Diffusion都基于Transformer架构训练而成,ChatGPT则是LLM家族中最出色的产品。本文就来聊聊最近出现的基于ChatGPT的创新架构和应用。由于ChatGPT的训练数据截止到2021年9月,且笔者并没有Plus会员才能使用的ChatGPT Plugin,所以这次请到的是Dr. Phind(The AI search engine for developers),大家欢迎。 系列文章 用AI学AI.1 用AI学AI.2 用AI学AI.3 用AI学AI.4 笔记 Agent如何工作 Autonomous agents (e.g., AutoGPT, BabyAGI) can auto-create tasks towards the GOAL you give them, and auto-find the way to complete task based on GPT models and other data sources (websites, your documents, etc), and even auto-improve themselves from previous mistakes. The basic structure is somehow similar to GOAP in video game’s AI design. ...

May 14, 2023 · 4 min

用AI学AI.1

按照目前AI在学术界、工业界推陈出新的速度,感兴趣的同学们纷纷表示:真的学不动啦!不要慌,AI老师来了~ 在本系列中,我不会提前学习预备知识,以门外汉的视角去追问AI并了解一些基本概念。既可以锻炼提问技巧,还可以在听完高屋建瓴的讲解后有针对性的去学习感兴趣的部分,效率倍增! ...

April 16, 2023 · 5 min

Generative AI Toolkit (5.12)

“There are decades where nothing happens; and there are weeks where decades happen.” ― Vladimir Lenin 基于大语言模型的AI在这个月带给人们的感受,用列宁的这句话概括再贴切不过了。作为普通人,去拥抱这些AI工具,就像会使用智能手机和搜索引擎;对人类来说,就像学会用电,学会用火。 ...

March 26, 2023 · 2 min

凤凰项目

市面上以DevOps为主题的书,以及和项目攻关的影视作品有不少了,但这本小说读起来依然紧张刺激。除了揭示管理现代IT组织与管理传统工厂的共通之处,书里更强调了以一种全局的视角来重新看待自己的工作环境,和自己在工作中扮演的角色,并且,其包含的问题分析方法、实践方法也或多或少可用于个人效能的优化。 ...

March 21, 2023 · 8 min