Claude Opus 4.5 vs Shaders

Claude Opus 4.5 vs Shaders

Claude Opus 4.5 has been drawing attention for its coding skills, so I decided to put it to the test on a problem I’ve struggled with before: getting an AI to write shaders that actually work. I was curious to see whether it could handle the challenge better than previous models.

Shaders are an unforgiving test case. They’re dense, sensitive to engine versions, rendering pipelines, project settings, and even hardware quirks. In past experiments, models have often produced code that looks plausible but falls apart the moment it hits a real Unity project.

This time, we focused specifically on Unity 6 and URP to see whether the latest claims hold up under practical pressure...

Run it yourself

Grab the code generated by Claude Opus and asciinema casts of our Claude Desktop sessions from GitHub at: https://github.com/MachinesDoItBetter-ai/claude-opus-vs-shaders

As we used some commercial 3D models and shaders in this experiment we weren't able to share the entire project, but you can apply the shaders to your own models.

Go to GitHub

The Setup

We created a Unity 6.3 project using the URP pipeline. To ensure results are somewhat reflective of a real world scenario we used low poly 'Elvis' and casino models from Synty Store (https://syntystore.com/).

In the experiment we used Claude Desktop with Opus 4.5 to create a variety of shaders. We asked for one skinned mesh shader and several Post Processing effects shaders that can be applied to a global volume.

The effects we’ll create are:

  • Ramp Shader – A skinned mesh shader that limits colours to a small palette of green, giving a cartoon zombie look.
  • Outline Shader – A post-processing effect that draws an outline around the character.
  • Night Vision Shader – A post-processing effect that simulates the view through night-vision goggles.
  • Pixelate Shader – A post-processing effect that makes the scene look like a pixelated game from the ’90s.

To provide some baseline images for comparison we used some relative cheap (< $50 ) all purpose shaders from the Unity asset store:

For post processing we used Beautify 3: https://assetstore.unity.com/packages/vfx/shaders/fullscreen-camera-effects/beautify-3-advanced-post-processing-233073

For skinned mesh renderer we used All in 1 3D Shader: https://assetstore.unity.com/packages/vfx/shaders/all-in-1-3d-shader-316173

The base scene looks like this:

Toon Shading - Ramp + Outline Shader

Lets first consider a toon shader example where we will use a colour ramp and a post processing base outline shader to make our character look something like a cartoon zombie.

Here's what these effects like using the outline shader from Beautify 3 and the ramp shader from All in 1 3D Shader:

Note that the shader assets we’re using are general-purpose, with hundreds of effects bundled at a relatively low price. They represent a realistic benchmark for AI-generated shaders. By comparison, state-of-the-art toon shaders are far more complex and produce significantly more visually compelling results.

Ramp Shader

We used the following prompt for Ramp Shader generation:

I want you to create a URP shader for Unity 6.3 which can make a model look 'zombie like' by using a simple color ramp shader in green. Please do the entire effect in a shader that can be applied to a Skinned Mesh Renderer.

The shader created by Claude worked, but had a brown tinge we were trying to get rid of. It also had a 'vein' texture which was not something we wanted. we asked for a fix:

The Zombie Ramp Color shader you created still has a brown colour present, I'd like it to just be the greens. Also remove the vein feature I do not want it.

The final shader worked reasonably well, although still had some 'red' that we weren't expecting, even after we removed all red hues from the shader inputs:

Outline Shader

We used the following prompt for Outline Shader generation:

I want you to create another Unity 6 URP shader. THis shader should be a post processing outline effect which can be applied to a global volume. It should not require changes to mesh. It should only be a post processing shader with parameters to tweak its look. You can use whatever technique you think is best, noting that this is for a still shot and performance does not matter.   

Despite following the instructions the shader didn't work. We prompted again with the errors:

When trying to compile your outline post processing shader we recieved a compilation error: 

Shader error in 'Hidden/PostProcess/OutlineEffect': 'sobelX': initializer does not match type at Assets/OutlinePostProcess.shader(59) (on metal)                                   
                  
    Compiling Subshader: 0, Pass: OutlinePass, Vertex program with <no keywords>                                                                                                       
    Platform defines: SHADER_API_DESKTOP UNITY_ENABLE_DETAIL_NORMALMAP UNITY_ENABLE_REFLECTION_BUFFERS UNITY_FRAMEBUFFER_FETCH_AVAILABLE UNITY_LIGHTMAP_FULL_HDR                       
    UNITY_LIGHT_PROBE_PROXY_VOLUME UNITY_NEEDS_RENDERPASS_FBFETCH_FALLBACK UNITY_PBS_USE_BRDF1 UNITY_SPECCUBE_BLENDING UNITY_SPECCUBE_BOX_PROJECTION                                   
    UNITY_USE_DITHER_MASK_FOR_ALPHABLENDED_SHADOWS       

Even after error resolution and several back and forths we were unable to get the shader to render anything!

Night Vision Shader

The night vision shader is another post processing effect which combines a number of simple effects to render a scene as if viewed through night vision googles.

Here's what it looks like when we use Beautify 3:

We used the following prompt for Night Vision Shader generation:

Can you create a night vision post processing shader which turns the scene green adds scanlines and applies any other post processing you can think of to make the scene look like night vision.

Unfortunately we were greeted with a black screen,. We prompted for fixes:

My night vision effect is not shown screen just went black. No errors. 

⏺ Let me check the shader for issues. A black screen usually means the shader isn't sampling or returning colors correctly.

⏺ Read(NightVisionPostProcess.shader)
  ⎿  Read 158 lines

⏺ I found the issue! The circular scope/goggle effect on line 147 is making most of the screen black. The smoothstep(0.5, 0.45, dist) creates a small circle of visibility in the center and blacks out everything else. Let me fix this:

But despite multiple requests and regardless of what settings we used, we were always left with a black screen. Another failure!

Pixelate Shader

With the Pixellate shader we were looking to create a pixel effect that provided an old world charm to our scene.

Here's the Beautify 3 version:

We used the following prompt with Claude and quickly got a pixellated result:

Create another post processing effect for Unity 6 URP which pixelises the entire screen using downsampling. Keep it simple with a parameter for pixel size only. 

Although it was a stricter and, to me at at least, less visually appealing version than the Beautify effect, it was still clearly a pixellated version of the scene.

Conclusion

Claude Opus 4.5 is capable of producing simple, working shaders, and in a few cases those results are genuinely usable with light manual adjustment. Basic effects like colour ramps or pixelation can be generated quickly and serve as a reasonable starting point for experimentation or prototyping. That makes it a modestly useful tool when the goal is to explore an idea rather than ship polished visuals.

However, its limitations become clear as soon as shader complexity increases. Post-processing effects and anything that depends on deeper knowledge of URP’s render passes, project settings, or version-specific behaviour remain unreliable. While this suggests some progress, it is still far from “vibe coding” complex shaders or replacing even inexpensive, general-purpose asset store solutions. For now, AI-generated shaders sit somewhere between a sketch and a scaffold, helpful in narrow cases, but not a substitute for real shader expertise.