원클릭으로
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.