Game Art & Design Aug 17, 2026

Defold PBR Asset - First Indie Lit Material Keep Hold 2026

Defold PBR asset keep/hold - asset-pbr metallic-roughness with 1.13.1 Lights, vs defold-pbr extension IBL, and KEEP sandbox vs HOLD ship after Aug 6.

By GamineAI Team

Defold PBR Asset - First Indie Lit Material Keep Hold 2026

Pixel art robot polishing a metallic treasure chest under a warm studio lamp

If you searched defold pbr after the Foundation’s quiet August 6 announcement, you do not need another “Defold finally does real 3D” pep talk. You need a keep/hold: can a small team add defold/asset-pbr as a dependency, assign /defold-pbr/pbr.material to one glTF model, place a Light component, prove the surface responds to the LightBuffer, and decide KEEP lab / HOLD ship rewrite before anyone conflates this reusable asset library with the older IBL-heavy Defold PBR extension?

This URL owns that evening. It is not How to Use Defold 1.13.1 Lights (Light components / LightBuffer evening without the asset-pbr material stack). It is not Defold morph targets (blend shapes on stable). It is defold pbr via the official asset-pbr library paired with new Lights — one lit material smoke with a falsifiable receipt.

Why this matters now

On August 6, 2026, Pawel posted Defold PBR Asset on the Defoldmine: a new assets library for physically based rendering, published a bit quietly because it requires 1.13.1 with the new Light components (still in beta at announcement time). The repo is defold/asset-pbr. The Foundation’s own wording is the SERP gap: this asset is a re-usable system for games, and it works with the new Light components — which is deliberately different from the older Defold PBR extension that layers image-based lighting from HDR environment maps on top of related shaders.

Mid-August 2026 still needs the keep/hold because Discord will jump from “Defold has PBR now” to three wrong conclusions in under an hour:

  1. “Merge 1.13.1-beta into the Steam depot so the metal looks shiny.”
  2. “asset-pbr means we get Blender-viewport IBL for free.”
  3. “Rewrite every unlit material this weekend.”

Stock unlit / simple lit paths still ship most Defold games. asset-pbr is for teams that need metallic-roughness response to punctual lights on a spike branch — not ego, not a partner-deck synonym for “AAA lighting.”

Why this URL wins the SERP gap: Forum + GitHub README exist. The catalog already owns a Defold 1.13.1 lights-only evening. SERP still lacks an indie P1–P6 KEEP/HOLD that separates asset-pbr from defold-pbr extension, names LightBuffer honestly, and refuses “looks like Blender” claims without IBL.

Who this is for

Reader Outcome tonight
Beginners One model uses /defold-pbr/pbr.material and brightens when a light moves
Developers Dependency install, sampler names, LightBuffer loop, render-script prerequisites, failure modes
Creators Discord paste that kills “shiny like Blender” FOMO
Companies CapEx four-liner — lab PBR material ≠ ship lighting rewrite
Search Primary keyword defold pbr

Time: 75–120 minutes on a throwaway 1.13.1-beta project (or your existing lights spike).

Prerequisites: Defold 1.13.1 (beta or later when stable lands) with Light components available, a disposable project or spike branch, one glTF/glB or built-in model, and honesty that ship branches stay on your last stable Defold until you re-run P1–P6 after a stable cut.

Facts checked August 17, 2026: Re-read the forum PBR asset thread and asset-pbr README on your machine tonight. Light APIs and beta status move — do not trust an August Discord screenshot of someone else’s Outline.

Plain vocabulary

asset-pbr (this evening)

Official reusable metallic-roughness PBR material and shader stack under /defold-pbr/ after you fetch the library. Provides base color, metallic-roughness, normal/occlusion/emissive support, and punctual lights from Defold’s light component buffer. Image-based lighting is intentionally left out so extensions can inject extra terms.

defold-pbr extension (not the same product)

Older / parallel community–Foundation extension path that adds image-based lighting from HDR environment maps on top of related shaders. Forum staff clarified on August 8: the extension is what makes models look “nice and shiny” like Blender viewports; the asset library alone can look flat if you expected IBL. Do not claim asset-pbr KEEP equals “Blender match.”

LightBuffer / light components

1.13.1 editor Light components (ambient, directional, point, spot) feed built-in lighting.glsl / LightBuffer. asset-pbr shaders include that lighting path — they do not invent a custom light uniform array. Pair with the lights evening if you have never placed Outline lights.

PbrMaterial / sampler names

Model-component constants and glTF sampler names the material expects (PbrMetallicRoughness_baseColorTexture, metallic-roughness, normal, occlusion, emissive). Wrong sampler rename in a custom export pipeline → black or unlit-looking results that look like “PBR is broken.”

KEEP lab / HOLD ship

KEEP means the spike branch may keep experimenting with asset-pbr materials in a lab collection. HOLD means Steam / partner builds do not get a full-game PBR rewrite, beta merge, or “we shipped Defold PBR” deck line until receipts pass and stable engine + re-run land.

What this evening is not

Need Use this URL Use that instead
Editor lights / LightBuffer first smoke Pair after P1 Defold 1.13.1 lights evening
Morph targets / blend shapes No Defold morph targets spike
Steam collection / save-path audit No Defold Steam desktop collection audit
HDR IBL “Blender shiny” match Night B only Extension + asset per forum staff — not Night A receipt
Unity custom 2D light shapes No Wrong engine
Unreal Lumen / MegaLights No Wrong engine

Monday ritual (Discord-ready)

Defold PBR asset keep/hold — Aug 17 2026
1) 1.13.1-beta spike + Fetch Libraries asset-pbr zip
2) Assign /defold-pbr/pbr.material to one model
3) One directional or point Light in Outline
4) Play: move light → material response screenshot
5) Write: asset-pbr ≠ IBL extension (no Blender-match claim)
6) Decision: KEEP lab / HOLD ship PBR rewrite
Receipt: defold_pbr_asset_receipt_v1.json
≠ lights-only evening · ≠ morph · ≠ Steam save audit

Company CapEx four-liner (diligence zip cover)

When finance or a publisher asks “should we merge beta for Defold PBR?”:

  1. Scope — one-model metallic-roughness smoke on a spike; not whole-catalog material rewrite (forum announcement).
  2. Cost — beta disruption + TA time to re-author samplers/exports; changelog “PBR asset” is not an SLA (asset-pbr README).
  3. Evidence — Play screenshot + P1–P6; explicit note that IBL shininess requires the extension path when claimed.
  4. Owner — named spike lead who freezes Steam-branch merges until stable Defold + re-run.

August art-week cadence (after the first evening)

Once P1–P6 pass on one model, do not auto-rewrite every prop because “PBR exists.” Use a light loop:

Day Action Fail closed if…
Tue Second material (dielectric vs metal) on lab only Ship branch touched
Wed Compare unlit vs pbr.material side-by-side screenshot No receipt update
Thu WebGL2 / HTML5 note if you ship browser builds Assumed “works” with no build
Fri Re-read forum thread + dependency pin note Floating master.zip with no date

Gates P1–P6 (falsifiable)

P1 — Engine + dependency isolation

Pass if: Ship editor stays on stable. Spike uses 1.13.1 (beta or newer) with Light components present. game.project lists the asset-pbr zip dependency. Project > Fetch Libraries succeeds and /defold-pbr/ appears.

Install shape from the README (use the next free dependencies#N index if #0 is taken):

[project]
dependencies#0 = https://github.com/defold/asset-pbr/archive/refs/heads/master.zip

Fail if: You fetch libraries on the Steam ship project, or you “remember” PBR from the old extension and skip Fetch Libraries.

Beginner tip: If /defold-pbr is missing after fetch, you did not fetch, you pointed at the wrong zip, or you are on an editor that cannot resolve the dependency — fix that before blaming the shader.

P2 — Assign the base material

Pass if: At least one Model uses /defold-pbr/pbr.material (or a material that includes the asset’s programs as documented). For imported glTF, sampler names match Defold’s model pipeline names from the README.

Fail if: You only change a color constant on an unlit built-in and call it PBR, or you rename glTF samplers in a custom exporter without updating the material.

Developer note: The shader binds glTF textures by sampler names populated by the model component and uses PbrMaterial / PbrMetallicRoughness uniform blocks. Those are normally filled when import is healthy — broken import = broken look.

P3 — Punctual lights present

Pass if: Outline contains at least one directional, point, or spot Light that should affect the model, plus ambient/light_info expectations documented for your render path. You know which light you will move in P4.

Fail if: Zero lights and you expect magic “PBR glow,” or you only toggled a skybox texture and assumed IBL.

If you have never placed Light components, stop and run the lights first evening gates L1–L4 on the same spike, then return here. This article assumes lights exist; it owns the material keep/hold.

P4 — Play smoke (LightBuffer response)

Pass if: In Play mode, moving or dimming the chosen light visibly changes the lit material (screenshot before/after). You write max_light / light count honesty if you hit engine caps. Render script draws models with camera view/projection and depth as in the README sketch — no custom PBR light constants required by the asset.

Fail if: Screenshot is Outline-only, or the surface never changes because you are still on an unlit material, wrong predicate, or a render script that never enables the light buffer path.

Creator tip: The Discord paste needs the Play frame, not the editor gizmo. Partners cannot diligence Outline icons.

P5 — Name the product (asset vs extension)

Pass if: Receipt explicitly states: Night A used asset-pbr only; IBL / “Blender shiny” is out of scope unless a separate Night B notes the extension. You can quote the forum distinction in one sentence.

Fail if: Deck says “Defold PBR matches Blender” after asset-only smoke, or someone swaps repo names in the receipt.

Staff answer from the thread (paraphrase for diligence): the extension adds HDR environment IBL; the asset is the reusable base that works with new Lights. Flat/dull under white lights with asset-only is a category error, not proof that PBR “doesn’t work.”

P6 — KEEP / HOLD decision + receipt

Pass if: Written decision: KEEP lab (continue material experiments on spike) and/or HOLD ship (no full rewrite, no beta merge, no partner claim). Receipt JSON filled. Steam / release branch frozen.

Fail if: “We’ll decide later” after a shiny screenshot, or KEEP silently becomes a silent merge.

Receipt template (defold_pbr_asset_receipt_v1.json)

{
  "schema": "defold_pbr_asset_receipt_v1",
  "date": "2026-08-17",
  "engine": "Defold 1.13.1-beta (confirm your build)",
  "dependency": "https://github.com/defold/asset-pbr/archive/refs/heads/master.zip",
  "material_path": "/defold-pbr/pbr.material",
  "model_asset": "lab/helmet_or_prop.glb",
  "lights_present": ["directional", "point"],
  "play_screenshot": "receipts/pbr_play_before_after.png",
  "ibl_claimed": false,
  "extension_used": false,
  "webgl2_note": "hold or n/a — write yours",
  "decision": "KEEP_lab_HOLD_ship_rewrite",
  "owners": {
    "spike": "name",
    "ship_freeze": "name"
  },
  "gates": {
    "P1": "pass",
    "P2": "pass",
    "P3": "pass",
    "P4": "pass",
    "P5": "pass",
    "P6": "pass"
  },
  "notes": "asset-pbr ≠ defold-pbr extension IBL; ≠ lights-only evening"
}

Paste the path into your spike README. Diligence zips love boring JSON more than vibes.

Beginner first path (45–75 minutes)

  1. Duplicate a tiny project or create “pbr-lab” on 1.13.1-beta.
  2. Add the dependency line; Fetch Libraries; confirm /defold-pbr.
  3. Import or place one simple metallic prop (even a sphere with metallic-roughness textures).
  4. Assign /defold-pbr/pbr.material.
  5. Add one directional light aimed at the model; set a readable intensity.
  6. Play; orbit or move the light; save two screenshots.
  7. Fill the receipt; write KEEP lab / HOLD ship in Slack.

Common beginner mistakes:

  • Fetching libraries once, then deleting the dependency line “to clean the project.”
  • Expecting mirror-chrome looks without IBL / HDR.
  • Testing on a pitch-black ambient with a nearly black base color and concluding PBR is broken.
  • Mixing this lab with Steam save-path or collection packing on the same evening (save audit is a different night).

Working developer path (pipeline depth)

Render script sketch

The README’s typical model draw path is enough — view, projection, depth, cull, draw model predicate with frustum. The asset does not require custom PBR light constants; lights come from Defold’s buffer via /builtins/materials/lighting.glsl inclusion.

If your custom render script never draws models, or draws them with a predicate that skips the PBR material tag, P4 will fail in ways that look like “shader bug.”

Extension points (Night B only)

The fragment path centers on PBRLightData: get params → material info → calculate_pbr_light_data → optional custom specular / add_pbr_light_datacomposite_pbr_light_data. Extensions that want IBL include base lighting and inject before composite. That is power-user Night B, not the Monday KEEP receipt.

Sampler and export checklist

Check Why
glTF metallic-roughness in ORM packing your pipeline expects Wrong channel → plastic mud
Normal map space matches Defold import Flipped normals kill lighting cues
Emissive not accidentally maxed “Glow” mistaken for IBL
Alpha cutoff / unlit flags understood Unlit flag on = P4 nonsense
Light count vs MAX_LIGHT_COUNT Silent clamp mid-scene

HTML5 / WebGL2 honesty

If you ship browser builds, write a WebGL2 note on the same receipt even if tonight’s smoke is desktop-only. Lights + custom materials are exactly where “works in editor, black on HTML5” shows up. HOLD browser claims until you build once.

Beta merge policy

Treat asset-pbr on 1.13.1-beta like any other beta lighting stack:

  • Spike branch only until stable 1.13.1 (or later) lands.
  • Pin a dependency commit or dated zip note when you leave lab — floating master.zip is a reproducibility footgun.
  • Re-run P1–P6 after engine upgrade; do not inherit July lights screenshots as August PBR proof.

Failure modes (debug table)

Symptom Likely cause Fix
/defold-pbr missing No fetch / wrong dependency index Fetch Libraries; check game.project
Model still unlit Wrong material assignment Assign pbr.material
Flat / dull vs Blender Expected IBL from asset-only Read P5; Night B extension if needed
Black model Broken samplers / missing textures Verify glTF names + import
No change when moving light No lights / wrong render path P3 + render script
Looks fine in Outline, wrong in Play Screenshotting gizmos P4 Play frames only
Works on desktop, fails HTML5 WebGL2 / shader precision Build once; write hold
“We shipped PBR” in deck No receipt / silent merge P6 HOLD + CapEx four-liner

Creator share hooks

Discord one-liner: “Tried Defold asset-pbr with 1.13.1 Lights — one material Play smoke. KEEP lab. HOLD ship rewrite. Not the IBL extension.”

Devlog beat: Before/after light move on the same prop; caption the product name correctly.

Thumbnail / trailer caution: Do not grade the lab against a Blender lookdev still unless Night B IBL is actually in the build.

Trend body — what changed in August 2026

Until Lights landed in 1.13.1-beta, “Defold PBR” in community speech often meant the extension path and custom light feeding. The August 6 asset announcement reframes the stack: a reusable base library meant to sit under games and under extensions, wired to the new Light components. That is platform motion, not a year stamp.

Who it hits:

  • Micro-studios on Lua/Defold who postponed 3D lighting until editor lights existed.
  • TAs who already authored glTF metallic-roughness and need an engine material that respects it.
  • Leads who must stop partner decks from equating “PBR asset posted” with “ship lighting done.”

What to do Monday: run P1–P6 on one prop. Do not rewrite the catalog. Do not claim Blender parity from asset-only. Pair with the lights evening if Outline lights are still unfamiliar.

Honest limits

  • Not a full IBL / reflection-probe solution in the base asset.
  • Not a promise that every mobile/HTML5 tier hits desktop lookdev.
  • Not a reason to abandon unlit stylized art direction.
  • Not morph, physics, or Steam packaging.
  • Not a substitute for learning Light components first.
  • Beta APIs and README paths can move — re-verify against live GitHub before teaching juniors from a screenshot.

Worked example — “helmet lab” evening

Imagine a one-person studio with a glTF scout helmet already exported for a vertical slice. Monday plan:

  1. Spike branch feat/pbr-asset-lab from last stable ship tag.
  2. Side-by-side 1.13.1-beta editor; add asset-pbr dependency; fetch.
  3. Duplicate the helmet collection into collections/lab_pbr.collection.
  4. Assign pbr.material; keep ship collection on prior material.
  5. Place directional + point; ambient readable.
  6. Play; move point light across the visor; capture two frames.
  7. Write receipt with ibl_claimed: false.
  8. Slack: KEEP lab, HOLD ship rewrite, HOLD beta merge.
  9. Optional Thursday: HTML5 build note only if browser is in scope.

That is a complete keep/hold. Expanding to every prop is a different project with its own CapEx — not tonight’s P6.

Pairing with sibling formats

Format Role
This blog Strategy + gates + KEEP/HOLD for defold pbr asset
Lights evening Light components first
Morph targets Animation/blend — separate night
Steam save audit Packaging — separate night
Save root help Fix symptom — not PBR
Lua scripting overview Language context

Key takeaways

  1. defold pbr in August 2026 often means the official asset-pbr library — reusable metallic-roughness that reads the new LightBuffer.
  2. It was announced to work with 1.13.1 Light components; treat beta as spike-only until you re-run gates on stable.
  3. Assign /defold-pbr/pbr.material, place real lights, prove Play response — Outline gizmos are not proof.
  4. asset-pbr ≠ IBL extension; flat/dull under punctual lights is not automatic failure if you expected Blender HDR lookdev.
  5. Keep sampler names and PbrMaterial blocks healthy; bad glTF import looks like “PBR broken.”
  6. Render scripts must actually draw models with Defold’s lighting path — no custom light constants required by the base asset.
  7. Write KEEP lab / HOLD ship rewrite explicitly; screenshots without decisions become silent merges.
  8. CapEx four-liner: scope one model, cost is beta + TA time, evidence is P1–P6, owner freezes Steam merges.
  9. Do not cannibalize the lights-only evening — link it when lights are the gap; this URL owns the material library keep/hold.
  10. Pin dependency honesty; floating master.zip without a date is a reproducibility risk.
  11. HTML5/WebGL2 claims need a build note; desktop Play is not browser proof.
  12. Night B (extension IBL, custom PBRLightData injection) is optional power — never mix into Night A receipt.

FAQ

What is Defold PBR asset-pbr?

It is the official reusable metallic-roughness material and shader library published for Defold projects, installable as a GitHub zip dependency, living under /defold-pbr after Fetch Libraries. It targets model rendering with punctual lights from the new Light components.

Does asset-pbr replace the older Defold PBR extension?

No. The asset is the reusable base. The extension adds features such as image-based lighting from HDR maps. Forum staff recommend extension + asset when you want the shiny environment look; do not expect that from asset-only.

Do I need Defold 1.13.1?

The August 6 announcement said the asset requires 1.13.1 with new Light components. Confirm against the live forum thread and your editor before teaching the team from memory.

Can I use asset-pbr without any lights?

You will not get a meaningful punctual lighting keep/hold. Ambient-only experiments are not a substitute for P3–P4. Place at least one directional, point, or spot light.

Why does my model look flat compared to Blender?

Blender viewports often show IBL / HDR environment lighting. The base asset intentionally omits IBL. White lights alone will not recreate that look. That is P5 honesty, not a broken install.

Where do I assign the material?

On the Model component, assign /defold-pbr/pbr.material (or a material that correctly uses the asset’s programs). Confirm after Fetch Libraries that the path exists.

What sampler names should glTF use?

Keep Defold’s generated names such as PbrMetallicRoughness_baseColorTexture, metallic-roughness, normal, occlusion, and emissive samplers listed in the README. Custom renames without material updates break binding.

Is this the same as the Defold 1.13.1 lights tutorial?

No. The lights evening teaches Light components and LightBuffer. This article assumes lights and owns the PBR asset material keep/hold and the asset-vs-extension distinction.

Should we merge 1.13.1-beta because PBR looks good in lab?

No. KEEP lab does not authorize HOLD ship to flip. Freeze Steam merges until stable engine + re-run P1–P6 and an explicit release decision.

How long does the keep/hold take?

About 75–120 minutes for a fresh spike with one model. Longer if you must learn Light components first or fix a broken glTF import pipeline.

What goes in the diligence zip?

Receipt JSON, before/after Play screenshots, CapEx four-liner, and a one-liner that IBL was not claimed unless Night B ran.

Can stylized unlit games ignore this?

Yes. Unlit and stylized pipelines remain valid. This keep/hold is for teams that need metallic-roughness response to punctual lights — not a moral obligation to “go PBR.”

Related reading