{
  "$type": "site.standard.document",
  "bskyPostRef": {
    "cid": "bafyreihfbv4xu3zudg7ihmwte4zsbl7hssgc5gws5i4nuo2frw7h4mu54q",
    "uri": "at://did:plc:dxjzgxe7cvirxkwfjr2tjspt/app.bsky.feed.post/3mf7hrcwkulk2"
  },
  "path": "/t/february-2026-monthly-wip-screenshot-thread/49404#post_3",
  "publishedAt": "2026-02-14T17:41:05.000Z",
  "site": "https://hub.jmonkeyengine.org",
  "textContent": "I’ve been playing around with vertex shaders and made some changes to `PBRLighting.vert` to achieve this wobble effect.\n\nI added the following to my personal version of `PBRLighting.vert`:\n\n\n    uniform float g_Time;\n    uniform vec3 m_Amplitude;\n    uniform vec3 m_Frequency;\n    .\n    .\n    .\n    void main(){\n\n        vec4 modelSpacePos = vec4(inPosition, 1.0);\n        vec3 modelSpaceNorm = inNormal;\n        vec3 modelSpaceTan  = inTangent.xyz;\n\n        float wobble = mod(length(modelSpacePos.xyz), 2.0) - 0.5;\n\n        modelSpacePos.x += m_Amplitude.x * sin(m_Frequency.x * (modelSpacePos.x + g_Time)) * wobble;\n        modelSpacePos.y += m_Amplitude.y * sin(m_Frequency.y * (modelSpacePos.y + g_Time)) * wobble;\n        modelSpacePos.z += m_Amplitude.z * sin(m_Frequency.z * (modelSpacePos.z + g_Time)) * wobble;\n\n        lPosition = modelSpacePos.xyz;\n        .\n        .\n        .\n    }\n\n\nAnd to `PBRLighting.j3md`:\n\n\n    MaterialDef PBR Lighting {\n\n        MaterialParameters {\n            Int BoundDrawBuffer\n\n            // Amplitude and frequency\n            Vector3 Amplitude : 0.0 0.0 0.0\n            Vector3 Frequency : 0.0 0.0 0.0\n            .\n            .\n            .\n        Technique {\n            .\n            .\n            .\n            WorldParameters {\n                Time\n                .\n                .\n                .\n            }\n        }\n    }\n\n\n\nOn the Java side, all I need to do is set the amplitude and frequency values in the material (on the x, y and z axes):\n\n\n        material.setVector3(\"Amplitude\", new Vector3f(.25f, .25f, .25f));\n        material.setVector3(\"Frequency\", new Vector3f(1, 2, 3));\n",
  "title": "(February 2026) Monthly WIP Screenshot Thread"
}