ワンクリックで
forge-pbr-shading
Add Cook-Torrance PBR shading with GGX, Schlick-GGX, and Schlick Fresnel to an SDL GPU project alongside forge_scene.h
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Add Cook-Torrance PBR shading with GGX, Schlick-GGX, and Schlick Fresnel to an SDL GPU project alongside forge_scene.h
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Add PBR texture loading with separate roughness/metallic support to an SDL GPU project using forge_scene.h
Add instanced grass rendering with segmented blades, wind animation, LOD density rings, and terrain LOD with geomorphing to an SDL GPU project
Add procedural noise texture generation to the asset pipeline — C tool, Python plugin, web UI with live preview
Add an asset pipeline lesson — hybrid Python + C track for asset processing, procedural geometry, and web frontend
Add an audio lesson — sound playback, mixing, spatial audio, DSP effects, with SDL GPU scenes and forge UI
Run a quality review pass on a lesson before publishing, catching recurring issues found across project PR history
| name | forge-pbr-shading |
| description | Add Cook-Torrance PBR shading with GGX, Schlick-GGX, and Schlick Fresnel to an SDL GPU project alongside forge_scene.h |
Add physically-based rendering to an SDL GPU project. Implements a
Cook-Torrance microfacet BRDF fragment shader that uses the same texture
bindings and uniform layout as forge_scene.h's built-in model pipeline,
enabling side-by-side comparison with Blinn-Phong.
forge_scene_create_shader() — create vertex/fragment shaders from bytecodeSDL_CreateGPUGraphicsPipeline() — create custom pipeline matching model vertex layoutSDL_BindGPUFragmentSamplers() — bind per-material textures with fallbacksSDL_PushGPUFragmentUniformData() — push material uniform data to fragment shaderforge_scene_load_model() — load pipeline-processed modelforge_scene_draw_model() — draw with built-in Blinn-Phong for comparisonforge_scene_load_model()scene_model_vert_spirv/dxil/msl (available
via FORGE_SCENE_IMPLEMENTATION)sizeof(ForgeSceneModelVertex)
for pitch and offsetof() for attribute offsets/* GGX Normal Distribution */
float D = alpha2 / (PI * pow(NdotH * NdotH * (alpha2 - 1.0) + 1.0, 2.0));
/* Schlick-GGX Geometry (Smith method) */
float k = (roughness + 1.0) * (roughness + 1.0) / 8.0;
float G = (NdotV / (NdotV * (1-k) + k)) * (NdotL / (NdotL * (1-k) + k));
/* Schlick Fresnel */
float3 F = F0 + (1.0 - F0) * pow(1.0 - VdotH, 5.0);
/* Full specular: D * G * F / (4 * NdotV * NdotL) */
/* Energy-conserving diffuse: (1 - F) * (1 - metallic) * albedo / PI */
lerp(0.04, albedo, metallic),
not a fixed 0.04 for all materials(r+1)^2/8,
IBL: r^2/2See Lesson 51 — PBR Shading Model for the full implementation.