Post Project
  • Search
    • Buyers can
    • Search offers to buy now
    • Search freelancers to request a proposal
    • Freelancers can
    • Search projects to quote on
  • How it works
  • Log in
  • Sign up
  • Freelancer?
Browse by Category
    Technology & ProgrammingWriting & TranslationDesignDigital MarketingVideo, Photo & ImageBusinessMusic & AudioMarketing, Branding & SalesSocial Media

    Simple 3D rendering Engine (OpenGL? Ogre? Godot?)

    - or -

    Post a project like this
    12/10/2017
    $$
    • Posted: 6 years ago
    • Proposals: 3
    • Remote
    • #1710579
    • Expired
    Hossam S.Tahir R.Mateusz K. have already sent a proposal.
    • 0
    • 0

    Description

    Experience Level: Intermediate
    Estimated project duration: 1 day or less
    General information for the business: Software development
    Kind of development: New program from scratch
    Description of requirements/functionality: You will provide source code and compilation instructions for me to use as a basis for further development. Your code will import models from Blender, allow for adjustment of skeletal and morph parameters as well as location/rotation, and output the z-buffer from the perspective of a defined camera matrix.
    OS requirements: Linux
    Extra notes: Simple 3D rendering Engine (OpenGL? Ogre? Godot?)

    I need a simple and reasonably fast (read: graphics hardware not CPU) renderer to model data coming from a 3D camera system (similar to the Microsoft Kinect game controllers). This needs to be done with open-source but commercially usable APIs/Libraries/Engines. It needs to work on commodity desktop hardware, running Ubuntu Linux.

    My overall objective is to programatically create/adjust models of the 3D environment observed by the 3D camera system, trying to match (parts of) the observed scene as closely as possible. This does not need to be at full frame rate (30 fps @ 512 x 424 from the Kinect One), but needs to be fast enough to be at least moderately iteractive (1fps would be OK, 0.1fps would not). Your problem is not to try to match the scene, just to provide me a rendering sytem that I can manipulate to try and do this.

    I need to be able to programatically insert objects into the scene, some of which will contain rigging (both skeletal “bones” and “morphs / shapekeys”). These objects will come from Blender – you will tell me what to export, in what format (perhaps OpenGEX?), to make it useful to the rendering engine you produce. Note – make sure your chosen import method supports both skeletal rigging and morphs/shapekeys – Assimp for example doesn’t appear to have good support for morphs/shapekeys.

    I then need to render the Z-buffer, from the viewpoint of a known camera matrix, so that I can compare the rendered Z-values to those returned from the real-world camera. I do not actually need to render the visual image (though will be useful to do for debugging putposes, so it’s a required feature but not at realtime speed).

    I will then compare my observed real-world depth values to those from the Z-buffer, and make iterative modifications to the scene (e.g. altering translation, rotation, pose or morphs of objects). This is likely to be a simple case of least-squares depth differences between observed scene and rendered scene – however I will have to apply camera distortion corrections (these are quite fast to apply, so not a speed concern, and not your problem – just know that I’m aware I’ll need to do this).

    I believe this should be a very simple implementation in OpenGL or similar, or a subset of one of the many open-source 3G rendering or game engines (e.g. OGRE or Godot).

    The one complication is that the raw Z-buffer/DepthBuffer is frequently not directly accessable from game engines (though it is from OpenGL) – this is simply because moving that data from the graphics card to CPU space is considered slow (though on recent Intel processors, there is no external graphics card, so data is not physically moved about). So do check the capabilities of your chosen library/engine/API before bidding, as getting half-way through the process and then realising that your chosen platform doesn’t give easy access to the Z-buffer would be a problem.

    My preference would be for code written in C/C++ and/or openCL, but if there are good reasons for a different language, let me know. For extra points, using Qt’s OpenGL bindings will put your bid ahead of the pack (assuming they are appropriate for this task – if not, just let me know why).

    I can provide some sample 3D captured data, and Blender models of objects in the scene that match this data reasonably well, so that you can then guage the complexity of the task.

    Shamus H.
    Shamus H.
    100% (4)
    Projects Completed
    3
    Freelancers worked with
    3
    Projects awarded
    60%
    Last project
    31 Aug 2020
    United Kingdom

    New Proposal

    Login to your account and send a proposal now to get this project.

    Log in

    Clarification Board Ask a Question

      There are no clarification messages.
    12/10/2017
    $$

    - or -

    Post a project like this
    Shamus H.
    Shamus H.
    100% (4)
    Projects Completed
    3
    Freelancers worked with
    3
    Projects awarded
    60%
    Last project
    31 Aug 2020
    United Kingdom

    Related project Searches


    3d modeling 3d rendering opengl ubuntu (video) game development (video) game engine application programming interface (API) blender 3d C++ programming language compiler data modeling debugging desktop FP programming language image microsoft kinect moderation OpenCL programming language operating system (os) software development translation

    Product

    • About
    • Team
    • Careers

    Support

    • How it works
    • Trust & Safety
    • Help Centre

    Discover

    • GuidesStoriesNews

    Resources

    • Customer Stories
    • Business Cost Calculator
    • Startup Cities

    Browse

    • Freelance Services
    • Freelance Services By Country
    • Freelance Skills
    • Terms
    • Privacy
    • Sitemap
    • Company Details
    • © 2023 People Per Hour Ltd
    We collect cookies to enable the proper functioning and security of our website, and to enhance your experience. By clicking on 'Accept All Cookies', you consent to the use of these cookies. You can change your 'Cookies Settings' at any time. For more information, please read ourCookie Policy
    Cookie Settings
    Accept All Cookies