Jump to content


  • Content Count

  • Joined

  • Last visited

Community Reputation

8,078 Excellent

About Josh

Profile Information

  • Gender
  • Location
    San Francisco, CA

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. 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.
  2. 80 FPS on my laptop. Looks great.
  3. An adjustable per-animation speed setting is something I would like to add in the future.
  4. Josh


    "This type of video file isn't supported" in Edge browser.
  5. 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.
  6. 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.
  7. 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.
  8. In your scene shown above, nothing would be culled because all objects seem to be visible.
  9. Occlusion culling means that if an object is in front of another object, the object behind the one blocking it gets skipped entirely.
  10. 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.
  11. 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.
  12. If you just upload one of those models I am sure it has something drastically wrong with it, like 100 different subobjects each.
  13. 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. 😄
  14. 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.
  • Create New...