跳到主要内容
知仓学习社ZHICANG

game-transform-systems

Design and debug game transform systems, coordinate spaces, local/world/view/projection matrices, homogeneous coordinates, camera constraints, and i…

不碰外部(只输出文字)无严重或高危命中hashgraph-online/awesome-codex-plugins

它会碰到什么

扫了多少1 个文本文件,4 KB
它会碰到什么不碰外部(只输出文字)
命中总数0 处
命中统计严重 0 · 高 0 · 中 0 · 低 0

这一栏是扫描器报的事实,不是结论。命中多不等于有毒(安全工具、规则库、示例脚本本来就会包含危险写法),命中少也不等于干净。它和你手上的凭据、文件、网络有什么关系,需要你自己看。

技能内容

Game Transform Systems

Use this skill to make transform code explicit, composable, testable, and

consistent across gameplay, rendering, physics, and tools.

Primary source: Geometry for Programmers by Oleksandr Kaleniuk

(https://www.manning.com/books/geometry-for-programmers), transformed and

paraphrased, especially chapter 4. Additional source: Khronos glTF 2.0

specification transform and coordinate-system conventions

(https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html).

Core Workflow

  1. List every coordinate space involved: model, local, parent, world, view,

clip, screen, texture, grid, or field space.

  1. Define conventions once: handedness, up axis, units, row/column vectors,

matrix memory layout, multiplication order, angle units, and quaternion

order.

  1. Name transforms by direction, such as local_to_world and world_to_view.
  2. Compose transforms in one place and cache composed matrices when reused.
  3. Use inverse transforms to move queries into simpler spaces, especially for

picking, SDFs, fields, and object-local collision.

  1. Keep camera construction explicit: position, target or forward vector, up

vector, field of view, aspect ratio, near/far planes.

  1. Verify with round-trip tests and debug axes before tuning gameplay behavior.

Design Rules

  • Treat transforms as first-class data, not hidden side effects in helper

methods.

  • Prefer one canonical transform chain for rendering and gameplay. Add adapters

at engine or asset boundaries.

  • Use homogeneous coordinates when translation, projection, and matrix

composition must live in one pipeline.

  • Use affine transforms for ordinary rotation, translation, scale, and shear.
  • Use projective transforms when perspective, projection, or planar warping is

part of the problem.

  • Apply the inverse transform to an SDF or field input instead of rewriting the

field's formula for every object transform.

  • Transform normals with the inverse transpose when nonuniform scale or shear

is possible.

Camera And Projection Checks

  • A camera needs enough constraints to define orientation. A position and target

still leave roll ambiguous without an up/right/down vector or equivalent.

  • Near and far planes should fit the playable range; sloppy values harm depth

precision.

  • Projection and unprojection should be tested with known points at screen

center, viewport corners, near plane, and far plane.

  • Screen-space y direction and pixel-center conventions must be documented for

picking and UI/game interaction.

Transform Debug Checklist

  • Draw local axes for selected objects.
  • Draw camera frustum and near/far planes.
  • Log transform direction in variable names.
  • Assert matrices are finite before submitting to rendering or physics.
  • Test identity, translation-only, rotation-only, scale-only, parent-child, and

inverse round trips.

  • Test nonuniform scale if normals, collision, or child transforms are affected.

Common Mistakes

  • Mixing row-major memory layout with row-vector math assumptions.
  • Multiplying transforms in a plausible but wrong order.
  • Recomputing inverse matrices inside tight per-point loops.
  • Forgetting that w = 0 represents a direction in homogeneous coordinates,

while w = 1 represents a point.

  • Applying object transforms to an SDF output instead of inverse-transforming

the query point.

  • Fixing a camera roll bug by changing asset orientation instead of camera

constraints.

想直接用这个技能?

本站把开放许可(MIT / Apache 等)的技能按仓库打包整理到网盘,点一下转存到你自己的网盘,不用一个个从 GitHub 拉。许可未声明的技能只给原始仓库链接,不打包。