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

game-sdf-and-field-modeling

Model game shapes, volumes, influence, procedural objects, and effects with signed distance functions, implicit functions, scalar fields, vector fie…

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

它会碰到什么

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

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

技能内容

Game SDF And Field Modeling

Use this skill when a game system is better represented as a function over space

than as explicit triangles. Treat fields as gameplay and content tools, not only

rendering tricks.

Primary source: Geometry for Programmers by Oleksandr Kaleniuk

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

paraphrased, especially chapters 2, 8, 10, and 11. Additional sources:

NVIDIA GPU Gems 3 chapter 34, "Signed Distance Fields Using Single-Pass GPU

Scan Conversion of Tetrahedra"

(https://developer.nvidia.com/gpugems/gpugems3/part-v-physics-simulation/chapter-34-signed-distance-fields-using-single-pass-gpu),

and "Designing with Distance Fields" by Perry, Frisken, and Jones

(https://merl.com/publications/TR2006-054).

Core Workflow

  1. Define the field signature: point in which space goes in, what value comes

out, and what sign convention means.

  1. Choose whether the function must be a true distance field or only a sign-like

implicit function.

  1. Build primitive fields first, then compose with transforms, Booleans,

blends, offsets, or deformation fields.

  1. Transform the input point by the inverse object transform. Do not rewrite the

primitive for every translation, rotation, or scale.

  1. Track when operations preserve or destroy true distance meaning.
  2. Decide how the field becomes gameplay or renderable data: direct sampling,

raymarching, mesh extraction, voxelization, particles, decals, or collision

probes.

  1. Add visual debugging: slices, isolines, gradient arrows, sample points, and

sign colors.

Field Types

  • Scalar field: returns a number at each point. Use for terrain height,

influence, heat, fog, danger, signed distance, or density.

  • SDF: returns negative inside, zero on the boundary, positive outside, and

magnitude as distance when it remains a true SDF.

  • Vector field: returns a vector at each point. Use for wind, currents, steering,

force fields, deformation, and flow.

  • Deformation field: returns displacement vectors in the same space as the

modeled object.

  • Implicit surrogate: returns a sign-like value but not true distance. Useful,

but unsafe for operations that require distance magnitude.

SDF Operations

  • Union: take the minimum of two fields.
  • Intersection: take the maximum of two fields.
  • Subtraction: intersect the first field with the negated second field.
  • Dilation/erosion on a true SDF: add or subtract a constant according to the

project's sign convention.

  • Hollowing: convert a boundary band into a shell using absolute distance and

shell width.

  • Smooth blends: useful for organic shapes but may destroy exact distance

semantics.

Distance Validity Rules

  • A true SDF can support reliable offsets and gradient-based movement.
  • Boolean composition usually keeps the sign behavior but not exact distance

everywhere.

  • Metaballs, lemniscates, density functions, and many procedural formulas are

implicit fields, not true SDFs.

  • After distance validity is lost, reinitialize or recompute distance before

algorithms that depend on exact distance.

  • Gradients on noisy or sampled fields need filtering or robust finite

differences.

Game Use Cases

  • Procedural rocks, caves, blobs, shields, zones, decals, and organic props.
  • Destructible or editable volumes before conversion to mesh or voxels.
  • Influence maps for AI, hazard fields, fog density, wind, water currents, and

force fields.

  • Cheap inside/outside tests for volumes where mesh topology is unreliable.

Common Mistakes

  • Treating every implicit function as a true SDF.
  • Applying offsets after Booleans without checking distance validity.
  • Recomputing transforms or expensive neighbor searches per sample in a hot

path.

  • Sampling a field at too low a resolution, then blaming the extraction

algorithm.

  • Shipping field logic without a slice or isoline debug view.

想直接用这个技能?

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