Jump to content


  • Content Count

  • Joined

  • Last visited

Everything posted by Josh

  1. But you said all you need is to rearrange some channels. It sounds like there is a lot of functionality more that would have to be implemented to be useful. (I'm just trying to get a good understanding of where you are coming from. Thank you for the input.)
  2. It is almost certainly a problem with the VS redistributable not installing. If you install the game launcher, that might fix it: https://store.steampowered.com/app/355500
  3. The example you gave was that you do not want to create a metalness map, because it is too much trouble. I don't have any idea what the process of making these is actually like, but is this really something that occurs commonly? It sounds like you are describing big problems in the 2D art pipeline if it is really that much trouble.
  4. Okay, I believe now we are talking about a different thing. The output of a system like that is going to be a custom shader. So for that we would want something that reads your settings and generates a new pixel shader. I can see where that would be useful, but I don't think we need to go through that whole process for all our materials.
  5. This is what I am picturing. You drag the images you want onto the slots, and then it saves the results in our optimal format. What do you think?
  6. A new update is available for beta subscribers. Transparent materials are now supported. Unlike the old deferred renderer, our new clustered forward renderer supports transparency really really well! You can add these in a JSON material file with a Boolean property called "transparent" set to true: "transparent": true There are no separate blend modes now, since pre-multiplied alpha allows alpha and additive blending in a single pass. This is actually a really simple technique but for some reason all the information about it online are these horrible academic examples that don't show any clear benefit. It wasn't until I thought "how do I make shiny glass?" that I actually started looking for a way to do this. The command Material::SetTransparent(true) replaces the old SetBlendMode(blendmode) function. GLTF materials with blending will be automatically loaded. Per-object Z-sorting is not yet supported, but transparent groups of objects will always be rendered on top of opaque objects automatically, so you don't actually need to enable sorting if you don't expect to have two layers of transparency visible anywhere.. We haven't seen a lot of transparency in games since the mid-2000s, because at the time deferred rendering was the best lighting technique. I think the capabilities of our new renderer will open up a lot of possibilities to create games that look different from anything in the past. You can get access to the beta and private forum right now for just $5.
  7. Ah but, we have an overarching design goal: speed. Vulkan strongly prefers static structures of settings. Therefore we will do things in a way that optimizes performance.
  8. 120 (max framerate) FPS on my laptop. Looks great.
  9. An adjustable per-animation speed setting is something I would like to add in the future.
  10. Josh


    "This type of video file isn't supported" in Edge browser.
  11. An update for the beta of the new engine is now available with the following changes: GLTF loader is now working for most models. A large collection of GLTF files are available online for free from many sources, and they can be loaded right into the engine without any adjustment for materials or textures. Single-file GLB files also work. Added support for GLTF extension KHR_materials_pbrSpecularGlossiness. Disabled PNG loader gamma correction. world->SetSkybox(texture) can now be used to make PBR reflections appear. (The sky will not yet be visible though.) I'm going to try to use a voxel GI system for further reflections, and not use environment probes at all. Window::GetWidth(), Window::GetHeight(), Context::GetWidth(), and Context::GetHeight() are removed. Use GetSize() instead. It will return an iVec2 object with x and y components. JSON material files are changed slightly. in order to accommodate additional per-texture settings. None of these work yet, but you can see where it is going: "albedoMap": { "file": "./Rough-rockface1_Base_Color.jpg", "filter": "linear", "tilingU": "repeat", "tilingV": "repeat" }, So before if you had this: "albedoMap": "./Rough-rockface1_Base_Color.jpg" Just change it to this: "albedoMap": {"file": "./Rough-rockface1_Base_Color.jpg"} And then it will work. The screenshot below is a GLTF loaded and rendered with Vulkan. Note that this model uses baked lighting that is already included in the model. But the fact I can download these things and have them appear correctly with no adjustments is great. You can get access to the beta and private forum right now for just $5.
  12. If per-object occlusion culling is enabled, it will not be drawn. Otherwise it will be skipped only if the entire octree node is hidden. But the occlusion test itself has a cost, so you should not go around enabling this on a per-object basis. Anyways, your bottleneck is the fragment shader. SSR and SSAO are going to have the biggest performance impact.
  13. It's probably the post-processing effects more than anything else that are causing a slowdown, but since you have VSync enabled the FPS is locked at 60 anyways.
  14. In your scene shown above, nothing would be culled because all objects seem to be visible.
  15. Occlusion culling means that if an object is in front of another object, the object behind the one blocking it gets skipped entirely.
  16. By default you don’t need to do anything. Occlusion culling works on entire chunks of the scene, automatically. your scene has something very wrong with it but no one can tell what by looking at screenshots.
  17. We already do this a lot. The material generation guesses a lot of file name suffixes and usually can figure out which texture is the normal map, etc.
  18. If you just upload one of those models I am sure it has something drastically wrong with it, like 100 different subobjects each.
  19. It’s more optimal for us to make a decision now than for everyone’s GPUs to make a decision for each pixel, for each frame ever rendered by this engine, on anyone’s computer. πŸ˜„
  20. Josh

    PBR in LW4

    There are some difficulties with this. The gbuffer would require an additional value and it might be full right now. All the light shaders would require revision, with one logical branch handling pbr and another for blinn. Only one single brdf could be used. The probe shaders would also require revision. The new renderer is better suited for this. It might be possible, but I would rather spend this time working out transparency and other details in the Vulkan renderer.
  21. I would be interested in seeing your project files. Your scene does not look very complex
  22. Are your boxes instanced? How are they being created?
  • Create New...