{
"$type": "site.standard.document",
"bskyPostRef": {
"cid": "bafyreihfbv4xu3zudg7ihmwte4zsbl7hssgc5gws5i4nuo2frw7h4mu54q",
"uri": "at://did:plc:dxjzgxe7cvirxkwfjr2tjspt/app.bsky.feed.post/3mevscqgu7w22"
},
"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"
}