Uploaded September 2016 | Updated September 2026, 1 week ago
After playing mobile racing game "Need for speed no limits", I decided to create this demo to test if this kind of graphics is practical using Unity.The main focus of this demo is realtime cubemap reflection on mobile, which appears on the car & road's wet surface.The method I used allows both car & road sample the same cubemap render result, although the reflection on the car is not correct(only the road's reflection is correct), but I found that it is faster & still acceptable in a racing game
This demo runs @ stable 30FPS on HTC desire 805(GPU=Adreno 305, opengles3, 720p),
if using a lower resolution framebuffer & lower resolution realtime cubemap, it can run @ stable 60FPS.
One important optimization is pushing world space reflection vertor's calculation from fragment shader to vertex shader, it requires pre-tessellated mesh(road & car) to calculate acceptable reflection, but since the road cover large portion of the screen, the time saved from fragment shader's reflection vector calculation is huge.
Also cubemap rendering using a lower resolution can increase performance a lot.
see how the reflection probe(realtime cube map)'s position affect the final reflection result:
imgur.com/l4AGakl
After playing mobile racing game "Need for speed no limits", I decided to create this demo to test if this kind of graphics is practical using Unity.The main focus of this demo is realtime cubemap reflection on mobile, which appears on the car & road's wet surface.The method I used allows both car & road sample the same cubemap render result, although the reflection on the car is not correct(only the road's reflection is correct), but I found that it is faster & still acceptable in a racing game
This demo runs @ stable 30FPS on HTC desire 805(GPU=Adreno 305, opengles3, 720p),
if using a lower resolution framebuffer & lower resolution realtime cubemap, it can run @ stable 60FPS.
One important optimization is pushing world space reflection vertor's calculation from fragment shader to vertex shader, it requires pre-tessellated mesh(road & car) to calculate acceptable reflection, but since the road cover large portion of the screen, the time saved from fragment shader's reflection vector calculation is huge.
Also cubemap rendering using a lower resolution can increase performance a lot.
see how the reflection probe(realtime cube map)'s position affect the final reflection result:
imgur.com/l4AGakl


![[NiloToonURP] blue archive miku render test 1
I dont own any of the texture/model, I only wrote unity URP shader(NiloToonURP) in this video.
NiloToonURP GitHub:
https://github.com/ColinLeung-NiloCat/UnityURPToonLitShaderExample
game source:
https://twitter.com/blue_archivejp [NiloToonURP] blue archive miku render test 1](https://i.ytimg.com/vi/RgzoFCn_ceQ/mqdefault.jpg)
![[Unity Toon Lit Shader for URP (WIP)] auto hair 2D shadow on face
using just a regular rgb base color texture, no other extra textures/vertex data are needed in this video. This is the default lighting result without any tweaking.
github - UnityURPToonLitShaderExample:
https://github.com/ColinLeung-NiloCat/UnityURPToonLitShaderExample
creator of the model:
https://sketchfab.com/3d-models/band-of-sisters-2f1c0626d4cf4fd286c4cf5d109f7a32 [Unity Toon Lit Shader for URP (WIP)] auto hair 2D shadow on face](https://i.ytimg.com/vi/S67GlGAnvWA/mqdefault.jpg)
![[NiloToonURP] Blue Archive Shun unity URP render test
I dont own any of the texture/model, I only wrote unity URP shader(NiloToonURP) in this video.
NiloToonURP GitHub:
https://github.com/ColinLeung-NiloCat/UnityURPToonLitShaderExample
game source:
https://twitter.com/blue_archivejp/status/1430455268979085312 [NiloToonURP] Blue Archive Shun unity URP render test](https://i.ytimg.com/vi/SCOA3rmGz_A/mqdefault.jpg)
![[NiloToon Unity URP shader] Girls Frontline 2 Exilium (2023 CBT3) - MP7 Cheeta rendering
Model: Girls Frontline 2 Exilium (2023 CBT3) - Cheeta(MP7)
Shader: NiloToonURP (https://github.com/ColinLeung-NiloCat/UnityURPToonLitShaderExample)
Rendering Girls Frontline 2 Exilium - Cheeta(2023 CBT3 model) using NiloToon Unity URP shader, adding muzzle flash point light animation to demonstrate dynamic lighting of NiloToon shader. [NiloToon Unity URP shader] Girls Frontline 2 Exilium (2023 CBT3) - MP7 Cheeta rendering](https://i.ytimg.com/vi/ST9qNEfPrmY/mqdefault.jpg)

![[Unity Toon Lit Shader for URP (WIP)] Tree shadow and physics test
https://github.com/ColinLeung-NiloCat/UnityURPToonLitShaderExample [Unity Toon Lit Shader for URP (WIP)] Tree shadow and physics test](https://i.ytimg.com/vi/Ty4DXLFqqDo/mqdefault.jpg)


