GithubHelp home page GithubHelp logo

shybovycha / irrpaint3d Goto Github PK

View Code? Open in Web Editor NEW
4.0 3.0 2.0 10.47 MB

Realtime 3D object painting with Irrlicht

License: GNU Lesser General Public License v2.1

C++ 98.55% CMake 1.45%
irrlicht 3d-model

irrpaint3d's Introduction

Realtime model painting

Overview

This application aims at imlpementing painting 3D models in realtime.

Currently application only picks the UV coordinates of a selected point on a 3D model and shows it in a texture preview window. If your model has multiple materials with textures, the ones without textures are not displayed - there is simply no reason for that.

Screenshot

TODO

Required

Features still not implemented but required:

  • Actually drawing on the model
  • Saving the modified texture

Optional

Things that are not really required but which would greatly improve user experience:

  • [-] Translating / rotating / scaling the camera from UI
  • Choosing the brushes - color, size, opacity
  • Preventing screen from flickering with black when hovering over model
  • Pointing to the selected point on a model with 3D arrow instead of highlighting the whole triangle
  • Updating model texture on the fly

Compiling and running

  1. Install vcpkg:
  2. Use CMake in conjunction with vcpkg to install the dependencies and build the project:
cmake -B build -S . -DCMAKE_TOOLCHAIN_FILE=C:\src\vcpkg\scripts\buildsystems\vcpkg.cmake
cmake --build build

Then just run irr-paint-3d binary from the out directory.

.\out\build\x64-Debug\irr-paint-3d.exe

Use UI to open the 3D model. Use RMB (Right Mouse Button) to move camera around and LMB (Left Mouse Button) to rotate camera. To zoom in and out use RMB + LMB.

License

Code

See LICENSE. The code is thought to be not only significantly different than the example(s) but also not covered by the engine license since examples are trivial and not part of the engine.

Media

  The Irrlicht Engine License
  ===========================

  Copyright (C) 2002-2015 Nikolaus Gebhardt

  This software is provided 'as-is', without any express or implied
  warranty.  In no event will the authors be held liable for any damages
  arising from the use of this software.

  Permission is granted to anyone to use this software for any purpose,
  including commercial applications, and to alter it and redistribute it
  freely, subject to the following restrictions:

  1. The origin of this software must not be misrepresented; you must not
     claim that you wrote the original software. If you use this software
     in a product, an acknowledgement in the product documentation would be
     appreciated but is not required.
  2. Altered source versions must be clearly marked as such, and must not be
     misrepresented as being the original software.
  3. This notice may not be removed or altered from any source distribution.

irrpaint3d's People

Contributors

poikilos avatar shybovycha avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

imclab poikilos

irrpaint3d's Issues

Implement actual drawing

Since this is a core feature of this project, need to implement the drawing on the texture selected with the possibility to change the size, pressure and the color of the brush (let's say brush is always just a circle).

Please add a license.

I described at https://stackoverflow.com/questions/8803917/realtime-object-painting that the repo is missing a license but mentioned the wrong repo (moo3d) when I asked on LinkedIn so I am posting the issue here to ensure the request is clear. However, feel free to add one there too since you wrote in the readme that you intended for the program to be the start of a "free" program.

Having something posted online without a license defaults to the most restrictive application of copyright: https://choosealicense.com/no-permission/. Suggestion: Add GPLv2.1 to match Minetest since that is one of few (or the one?) maintained game(s) using Irrlicht still and this program may become a good editor for models for Minetest. Otherwise an MIT License is compatible with GPL at least (as an upstream source).

The easy way is:

  • Log into GitHub, go to https://github.com/shybovycha/irrPaint3D
  • Add File, Create New File
    • Change the name to license.txt and GitHub's license chooser button will appear:
      • Click the "Choose a license template" button that appeared on the right then choose the one you want and add your name and 2012 if not autofilled.
    • Change the branch to (commit directly to) "master" at the bottom.
    • Click "Commit new file"

Thank you.

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.