Git Product home page Git Product logo

datsville's People

Contributors

mjhorvath avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

datsville's Issues

Performance for viewing datsville

I noticed a number of issues described on the wiki. These issues have been a helpful reference when developing my own libraries and programs. Many of these can be addressed with new tools or updates to existing tools.

POV-Ray requires at least 16 GiB of RAM to process and render the model currently.

This is likely due to the studs. This can hopefully be improved by instancing the studs themselves in my Blender importer. Memory usage is much lower when not using logos on studs.

LDView requires several minutes to fully load Datsville into memory even on a modern computer.

LeoCAD takes a very long time as well. This should definitely be fixable at least for LeoCAD after fixing some unoptimized loading code. See leozide/leocad#850.

In LDView I get framerates in the single digits when viewing Datsville. Sometimes less than 1 FPS.

I can easily get double digit framerates when not fully zoomed in with ldr_wgpu even on my M1 Macbook Air. Porting the code to C++ isn't really feasible, but it may be possible to improve rendering performance of LeoCAD slightly.

I've tried converting Datsville to OBJ format and loading it into Blender. The program simply crashes.

It imports in seconds on my machine with the new Blender importer ldr_tools_blender. Blender tends to not have the fastest asset importers and they don't always work well with instanced geometry. Dedicated import addons can often be faster.

LDView's the camera controls become less responsive when the camera distances are huge.

This could be performance related or simply not scaling the camera transform updates when zoomed out. I noticed that LeoCAD zooms slowly on large scenes as well. I've implemented more intuitive zooming speed before, so I'll look into seeing how difficult this would be add to LeoCAD.

LeoCAD's camera draw distance is too small for Datsville. Large parts of the model get clipped and become invisible.

The physical size of the model is problematic if the program doesn't have a sufficiently large far clip plane. I'm working on a new optimized LDraw renderer ldr_wgpu. ldr_wgpu uses an infinite far clip plane using a common depth buffer trick. I'll look into porting this to LeoCAD.

Fixing parts without proper BFC information or smoothing/line5, mirrored models, and other issues

There are a lot of custom parts and models that aren't complete or are built incorrectly according to the spec. This causes render errors and causes some of the parts to render flat due to having no smoothing information.

building_002_townhall.mpd is constructed of mirrored models. Switching the render winding fixes render errors for me, but models aren't supposed to be inverted according to the spec, so this should be reworked. There are other models like this. I am in the process of building the list.

building_001_3039p_JJ.dat is a custom 45 degree slope that has no line5s, no BFC information, the antestud is malformed, and the winding is inconsistent. This causes it to render very poorly. Turning off culling helps slightly, but I've tested a new export with the problems fixed and the results are far more aesthetically pleasing. I am in the process of building this list too.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.