{
  "$type": "site.standard.document",
  "bskyPostRef": {
    "cid": "bafyreibescph7ahctrzptiggy3zqaf7hkzldwnc5s5cndbtwvnuqvg2n6m",
    "uri": "at://did:plc:dxjzgxe7cvirxkwfjr2tjspt/app.bsky.feed.post/3midri2tsgdl2"
  },
  "path": "/t/an-attempt-at-vulkan/49433?page=3#post_44",
  "publishedAt": "2026-03-30T02:10:54.000Z",
  "site": "https://hub.jmonkeyengine.org",
  "textContent": "OpenGL delegates the “name-to-address” translation to the graphics driver (acting as a black box), whereas Vulkan places this burden on you, the engine developer.\n\nOpenGL’s Approach: Driver as a “Nanny” Service\nIn OpenGL, the graphics driver is a complex, monolithic system. When you compile a shader, the driver internally and automatically builds a lookup table or “dictionary”.\n\nMy Current Dilemma:\nShould I emulate OpenGL’s approach by implementing my own dictionary system, or is there a more modern, efficient mapping strategy I should adopt instead?\n\nIn fact, no matter which method is used, modifying the shader is inevitable. But fortunately, the material system of JME can still be used.",
  "title": "An attempt at Vulkan"
}