<< All versions
Skill v2.0.0
currentAutomated scan100/100pluginagentmarketplace/custom-plugin-game-developer/graphics-rendering
──Details
PublishedOctober 20, 2026 at 06:33 PM
Content Hashsha256:651bfba9203ce3b0...
Git SHAd4df4981ffd4
──Files
Files (1 file, 8.6 KB)
SKILL.md8.6 KBactive
SKILL.md · 208 lines · 8.6 KB
name: graphics-rendering version: "2.0.0" description: | 3D graphics, shaders, VFX, lighting, rendering optimization. Create stunning visuals with production-ready techniques. sasmp_version: "1.3.0" bonded_agent: 03-graphics-rendering bond_type: PRIMARY_BOND
parameters:
- name: technique
type: string required: false validation: enum: [pbr, toon, cel, realistic, stylized]
- name: platform
type: string required: false validation: enum: [pc, mobile, console, vr]
retry_policy: enabled: true max_attempts: 3 backoff: exponential
observability: log_events: [start, complete, error] metrics: [draw_calls, frame_time_ms, gpu_memory]
Graphics & Rendering
Rendering Pipeline
┌─────────────────────────────────────────────────────────────┐│ RENDERING PIPELINE │├─────────────────────────────────────────────────────────────┤│ VERTEX STAGE: ││ Model Space → World Space → View Space → Clip Space ││ ↓ ││ RASTERIZATION: Triangles → Fragments ││ ↓ ││ FRAGMENT STAGE: Color, Lighting, Texturing ││ ↓ ││ OUTPUT: Final pixel color to framebuffer │└─────────────────────────────────────────────────────────────┘
Shader Programming
Standard PBR Shader (HLSL)
hlsl
// ✅ Production-Ready: PBR Surface Shaderstruct SurfaceData{float3 Albedo;float3 Normal;float Metallic;float Roughness;float AO;};float3 FresnelSchlick(float cosTheta, float3 F0){return F0 + (1.0 - F0) * pow(1.0 - cosTheta, 5.0);}float DistributionGGX(float3 N, float3 H, float roughness){float a = roughness * roughness;float a2 = a * a;float NdotH = max(dot(N, H), 0.0);float NdotH2 = NdotH * NdotH;float denom = (NdotH2 * (a2 - 1.0) + 1.0);return a2 / (PI * denom * denom);}float4 PBRLighting(SurfaceData surface, float3 viewDir, float3 lightDir){float3 H = normalize(viewDir + lightDir);float3 F0 = lerp(0.04, surface.Albedo, surface.Metallic);float D = DistributionGGX(surface.Normal, H, surface.Roughness);float3 F = FresnelSchlick(max(dot(H, viewDir), 0.0), F0);float3 diffuse = surface.Albedo * (1.0 - surface.Metallic);float3 specular = D * F;return float4((diffuse + specular) * surface.AO, 1.0);}
Toon/Cel Shader
hlsl
// ✅ Production-Ready: Toon Shaderfloat4 ToonShading(float3 normal, float3 lightDir, float4 baseColor){float NdotL = dot(normal, lightDir);// Step function for cel shadingfloat toonRamp;if (NdotL > 0.7) toonRamp = 1.0;else if (NdotL > 0.3) toonRamp = 0.6;else if (NdotL > 0.0) toonRamp = 0.3;else toonRamp = 0.1;return baseColor * toonRamp;}// Outline pass (inverted hull method)float4 OutlineVertex(float4 position, float3 normal, float outlineWidth){position.xyz += normal * outlineWidth;return position;}
Visual Effects (VFX)
Particle System Setup
PARTICLE SYSTEM ARCHITECTURE:┌─────────────────────────────────────────────────────────────┐│ EMITTER: Rate, Bursts, Shape ││ ↓ ││ SPAWN: Initial velocity, Size, Color, Lifetime ││ ↓ ││ UPDATE: Forces, Collisions, Color over life ││ ↓ ││ RENDER: Billboard, Mesh, Trail │└─────────────────────────────────────────────────────────────┘COMMON VFX RECIPES:┌────────────────┬────────────────────────────────────────────┐│ Fire │ Orange→Yellow gradient, upward velocity ││ Smoke │ Gray billboards, turbulence noise ││ Sparks │ Point emitter, gravity, short lifetime ││ Magic │ Spiral path, glow, color cycling ││ Blood │ Burst, gravity, decal on collision │└────────────────┴────────────────────────────────────────────┘
Optimization Techniques
| Technique | Draw Call Reduction | When to Use | |
|---|---|---|---|
| Static Batching | 90%+ | Static geometry | |
| Dynamic Batching | 50-80% | Small moving objects | |
| GPU Instancing | 95%+ | Many identical objects | |
| LOD System | 40-60% | Distant objects | |
| Occlusion Culling | 30-70% | Indoor scenes |
LOD Configuration
LOD DISTANCE SETUP:┌─────────────────────────────────────────────────────────────┐│ LOD0 (100% tris): 0-20m → Full detail ││ LOD1 (50% tris): 20-50m → Reduced detail ││ LOD2 (25% tris): 50-100m → Low detail ││ LOD3 (10% tris): 100m+ → Billboard/Impostor │└─────────────────────────────────────────────────────────────┘
🔧 Troubleshooting
┌─────────────────────────────────────────────────────────────┐│ PROBLEM: Too many draw calls (>2000) │├─────────────────────────────────────────────────────────────┤│ SOLUTIONS: ││ → Enable GPU instancing for repeated objects ││ → Use texture atlases ││ → Merge static meshes ││ → Implement LOD system │└─────────────────────────────────────────────────────────────┘┌─────────────────────────────────────────────────────────────┐│ PROBLEM: Shader artifacts / visual glitches │├─────────────────────────────────────────────────────────────┤│ SOLUTIONS: ││ → Check for division by zero ││ → Validate normal vectors ││ → Use saturate() on color outputs ││ → Check texture sampling modes │└─────────────────────────────────────────────────────────────┘
Platform Guidelines
| Platform | Max Draw Calls | Shader Complexity | Texture Size | |
|---|---|---|---|---|
| Mobile | 100-200 | Low | 1024px max | |
| Console | 2000-3000 | High | 4096px | |
| PC | 3000-5000 | Very High | 8192px | |
| VR | 100-150 | Low | 2048px |
Use this skill: When creating shaders, optimizing visuals, or implementing effects.