# NME: reflections on modified in vertex shader plane are strange with PerturbNormal block

**URL:** https://forum.babylonjs.com/t/nme-reflections-on-modified-in-vertex-shader-plane-are-strange-with-perturbnormal-block/56791
**Category:** Questions
**Tags:** shader, nme, reflections
**Created:** [February 25, 2025, 12:12pm UTC](https://forum.babylonjs.com/t/nme-reflections-on-modified-in-vertex-shader-plane-are-strange-with-perturbnormal-block/56791 "2025-02-25T12:12:29Z")
**Posts on this page:** 1
**Showing post:** 6

<div class="post-metadata">

### Author: ![tokareuv](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/tokareuv/32/41070_2.png) [@tokareuv](https://forum.babylonjs.com/u/tokareuv)
#### Post date: [February 27, 2025, 11:44am UTC](https://forum.babylonjs.com/t/nme-reflections-on-modified-in-vertex-shader-plane-are-strange-with-perturbnormal-block/56791/6 "2025-02-27T11:44:38Z")

</div>

@PatrickRyan I tried to use this approach before. Initially I used [this](https://forum.babylonjs.com/t/ocean-node-material/13554/32) topic as reference point. But here’s the problem: as for some reason with derivatives perturbation is really small, the reflection that we can see with environment mode enabled is wrong (that’s why I made wave very high in this example).

 ![image](https://us1.discourse-cdn.com/flex024/uploads/babylonjs/original/3X/8/3/839c46a1ae3134d8ff8b91ffed86cae9fe76f9cd.jpeg)

It reflects as if the surface is almost flat (which is not surprising with small difference in normal map). Also I have concerns that, as we can see on normalMapColor input debug-panel, normals change depending on the angle we are watching it from (I suppose, that’s one of noisiness factors you mentioned before)

 ![image](https://us1.discourse-cdn.com/flex024/uploads/babylonjs/original/3X/d/d/dd931efe75869ac5966762d459effb2b0f744769.png)

I tried to opt out of using derivatives for performance/quality balancing reasons: while sampling texture (Vorley, Simplex) kills some variety, I can use precalculated gradients here and avoid calculations per pixel with corresponding built-in blocks. But for this I need correct behaviour at least at a simpler case like sine function.

---

_[View the full topic](https://forum.babylonjs.com/t/nme-reflections-on-modified-in-vertex-shader-plane-are-strange-with-perturbnormal-block/56791)._
