Coder Social home page Coder Social logo

hankidesign / gradientmeshimproved Goto Github PK

View Code? Open in Web Editor NEW

This project forked from johnksv/gradientmeshimproved

0.0 1.0 0.0 11.87 MB

Research project at HiOA (Oslo and Akershus University College of Applied Sciences)

License: GNU General Public License v3.0

C++ 99.38% QMake 0.62%

gradientmeshimproved's Introduction

A Gradient Mesh Tool for Non-Rectangular Gradient Meshes

This is a research project at HiOA (Oslo and Akershus University College of Applied Sciences).

Our work has been accepted to SIGGRAPH 2017

Executable

Windows

Implementation details

This is a C++ project using Qt 5.6 Widgets. The project is coded with the QtCreator IDE (project file included). The code is developed and tested with the Visual Studio 2015 compiler.

Required libraries:

Getting Started

  • Clone this repo
  • Modify line 9 in GradientMeshImproved.pro to point to your OpenMesh installation
  • Build and run

How to

All tools are point-and-click.

Adding first face

With line tool (default): Add control points by left clicking on the canvas. Close the face by selecting the first control point.

With rectange tool: Place the top-left control point, then place the bottom-right control point.

Adding faces

Select an existing control point and place new ones on the canvas. The face is closed by clicking on an existing control point. A non-manifold mesh can be achieved if the initial control point closes the face (or by later deleting faces).

Choosing colour

We offer up to 3 colours one can quick pick from. To select the colours, click on the colour, or use their associated hotkeys (1 for primary, 2 for secondary, 3 for tertiary).

When a colour is choosen, the colour dialog will be displayed. Tick the Lock colour changescheckbox (or press 4) if you don't want to display the colour dialog every time you change colour.

Change colour of existing control point

Select desired control point and select the new colour from the colour menu.

Or:

Right-click on the control point and select Choose color.

Deleting faces

Rigt click on the desired face, and choose "Delete face".

Move and select

Multiple control points can be selected by holding down ctrl. To drag and select control points, hold down shift. One can also add contorl points selected by draging by holding down shift+ctrl .

Edge split tool

Click on the desired location along the edge to insert a new control point.

Collapse edge tool

Removes a control point by collapsing into an adjacent control point. NB: Constraints for the new edge is not preserved.

Saving all layers

When saving all layers, a suffix will be added to the file name.

Importing

Multiple layers can be imported as once. The order of the layers will then be in the order they were imported.

NB: It is necessary to Render mesh after importing.

Handy shortcuts

Shortcut Action
1 Select primary color
2 Select secondary color
3 Select tertiary color
4 Lock color change
esc Cancel current drawing
delete Delete everything on layer
ctrl+q Move and Select
ctrl+w Rectangle Tool
ctrl+e Line tool
ctrl+r Edge split tool
ctrl+r Collapse Edge
ctrl+z Undo
ctrl+x Show/hide face overlay
ctrl+c Show/hide constraint handlers
ctrl+v Turn on/off auto rendering (can be expensive for big meshes)
ctrl+b Toggle Render only in split window

Shortcomings

Undo is only partially supported, and not for every action that is possible. User interface in general Deletion of faces: the click must be done inside without concerns to the edges (because the edges are rendered at runtime, the underlying mesh has no knowledge of it).

gradientmeshimproved's People

Contributors

johnksv avatar hlieng avatar

Watchers

James Cloos avatar

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.