All Projects → GValiente → Q3dobserver

GValiente / Q3dobserver

Licence: zlib
Multi-platform C++11 library based on Qt for creating 3D viewer widgets

Programming Languages

cpp11
221 projects

Projects that are alternatives of or similar to Q3dobserver

Openscad
OpenSCAD - The Programmers Solid 3D CAD Modeller
Stars: ✭ 4,444 (+34084.62%)
Mutual labels:  opengl, 3d, qt5
Exengine
A C99 3D game engine
Stars: ✭ 391 (+2907.69%)
Mutual labels:  opengl, 3d
Magnum
Lightweight and modular C++11 graphics middleware for games and data visualization
Stars: ✭ 3,728 (+28576.92%)
Mutual labels:  opengl, 3d
Etengine
Realtime 3D Game-Engine with a focus on space sim. Written in C++ 14
Stars: ✭ 408 (+3038.46%)
Mutual labels:  opengl, 3d
Ava
A tiny unlicensed 3D game engine in C; with C++ and Lua interfaces. Written in 32 random ̷d̷a̷y̷s̷ m̷o̷n̷t̷h̷s̷ years.
Stars: ✭ 287 (+2107.69%)
Mutual labels:  opengl, 3d
Glportal
🎮 Open Source teleportation based first person puzzle-platformer
Stars: ✭ 297 (+2184.62%)
Mutual labels:  opengl, 3d
Software
DeepValueNetwork is a peer-to-peer database network managed and hosted by its community. It contains a browser to render 2D/3D content and allow the creation of scripted applications built on top of the p2p database network and managed by its creators, without intermediary platform.
Stars: ✭ 357 (+2646.15%)
Mutual labels:  opengl, 3d
Silk.net
The high-speed OpenAL, OpenGL, Vulkan, and GLFW bindings library your mother warned you about.
Stars: ✭ 534 (+4007.69%)
Mutual labels:  opengl, 3d
Worldwindjava
The NASA WorldWind Java SDK (WWJ) is for building cross-platform 3D geospatial desktop applications in Java.
Stars: ✭ 526 (+3946.15%)
Mutual labels:  opengl, 3d
Renderhelp
⚡️ 可编程渲染管线实现,帮助初学者学习渲染
Stars: ✭ 494 (+3700%)
Mutual labels:  opengl, 3d
Pyrr
3D mathematical functions using NumPy
Stars: ✭ 282 (+2069.23%)
Mutual labels:  opengl, 3d
Cglm
📽 Highly Optimized Graphics Math (glm) for C
Stars: ✭ 887 (+6723.08%)
Mutual labels:  opengl, 3d
Openswe1r
An Open-Source port of the 1999 Game "Star Wars Episode 1: Racer"
Stars: ✭ 236 (+1715.38%)
Mutual labels:  opengl, 3d
Limonengine
3D FPS game engine with full dynamic lighting and shadows
Stars: ✭ 331 (+2446.15%)
Mutual labels:  opengl, 3d
Gltf
A crate for loading glTF 2.0
Stars: ✭ 224 (+1623.08%)
Mutual labels:  opengl, 3d
Rustarok
Multiplayer, fast-paced Moba style game
Stars: ✭ 223 (+1615.38%)
Mutual labels:  opengl, 3d
Fishengine
Simple, Unity-like Game Engine.
Stars: ✭ 191 (+1369.23%)
Mutual labels:  opengl, qt5
Engine
A basic cross-platform 3D game engine
Stars: ✭ 208 (+1500%)
Mutual labels:  opengl, 3d
Open3d
Open3D: A Modern Library for 3D Data Processing
Stars: ✭ 5,860 (+44976.92%)
Mutual labels:  opengl, 3d
Fauxgl
Software-only 3D renderer written in Go.
Stars: ✭ 658 (+4961.54%)
Mutual labels:  opengl, 3d

Q3DObserver

Q3DObserver is a multi-platform C++11 library based on Qt that eases the creation of 3D viewer widgets.

Q3DObserver provides some of the typical 3D viewer functionalities, such as an orbit camera which can be rotated, scaled and translated using the mouse. Based on the Qt toolkit, it compiles on any architecture (Unix-Linux, Mac, Windows). Q3DObserver does not display 3D scenes in various formats, but it can be the base for the coding of such a viewer.

Q3DObserver is licensed under Zlib license. OpenGL knowledge is NOT required to use this library.

screenshot of some 3D shapes rendered with Q3DObserver

Tested build configurations (minimum required versions may be lower)

  • Ubuntu 16.04 with gcc 4.9.
    • and macOS 10.11 with Xcode 8.2.
    • and Windows 7 with Visual Studio 2017.
  • CMake 3.4.
  • Qt 5.5.

Building and running tests on Linux and Mac

cd q3dobserver
mkdir build
cd build
cmake -DQ3DO_BUILD_TESTS=ON -DCMAKE_BUILD_TYPE=Release ..
make
./tests/q3dobserver-tests

Main features

  • Show 3D figures such as points, lines, triangles and text strings without writing OpenGL code.
  • Orbit camera which can be rotated, scaled and translated using the mouse.
  • Open source commercial friendly license (Zlib): compatible with open and closed source projects.

Usage

The following example shows how to draw some 3D figures:

// main.cpp:

#include <QApplication>
#include "Q3DObserver"

int main(int argc, char** argv)
{
    QApplication app(argc, argv);

    // Enable antialiasing:
    QSurfaceFormat format;
    format.setSamples(4);
    QSurfaceFormat::setDefaultFormat(format);

    // Create widget and add 3D figures:
    Q3DObserver observer;
    observer.addPoint(QVector3D(0, 0, 0), QColor(Qt::red));
    observer.addLine(QVector3D(-1, -1, -1), QVector3D(1, 1, 1), QColor(Qt::green));
    observer.addTriangle(QVector3D(0, 1, 0), QVector3D(1, 0, 0), QVector3D(-1, 0, 0), QColor(Qt::blue));
    observer.addText(QVector3D(0, 0.5, 0), QColor(Qt::white), "3D text");

    // Show widget:
    observer.resize(1280, 720);
    observer.show();

    return QApplication::exec();
}
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].