Giter Site home page Giter Site logo

learnopengl-qt3d's Introduction

learnopengl-qt3d

Qt3D version of LearnOpenGL examples, currently works with Qt5.9. I created this repo aiming to understand how Qt3D works.

Pure QML version, use qmlscene to run with default OpenGL Context:

Try it with Qt5.9+:

	qmlscene -I https://raw.githubusercontent.com/MidoriYakumo/qml-virtualkey/master/ https://raw.githubusercontent.com/MidoriYakumo/learnopengl-qt3d/master/qml/app.qml

Compiled version, context set to GL4.3(Desktop)/GLES3.0(Mobile):

How to launch

learnopengl-qt3d can be launched from either qmlscene or compiled binary file.

Main qml file for qmlscene/binary/QmlCreator:

  • app.qml: main window with line chart FPS display

  • main.qml: QuickItem as root + text FPS display

With one keyword as arguments you can specify the sample to be launched:

  • qmlscene skybox app.qml
  • ./learnopengl-qt3d geometry

Notes

  • Some large assets from the website is downloaded by qmake script(*nix only), connection is required at the first build or after updated. Use CONFIG += no_assets to skip and enable local filesystem routing(may lead to crash). See main.cpp, assets.pri, Resources.qml for details.

  • leanopengl uses a little different lighting model from Qt3D default model, to rendering models for a better result, please slightly modify the ka, kd in mtl files

  • run qmltestrunner under qml/tests to perform unit tests or to generate screenshots.

Content

Getting started

  1. Hello Window : works
  2. Hello Triangle : works
  3. Shaders : works
  4. Texture : works
  5. Transformations : works
  6. Coordinate Systems : works
  7. Camera : works

Lighting

  1. Colors : works
  2. Basic Lighting : works
  3. Materials : works
  4. Lighting-maps : works
  5. Light-casters : works

learnopengl-qt3d's People

Contributors

midoriyakumo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

learnopengl-qt3d's Issues

编译错误,丢失一些资源文件

编译报如下错误:

Info: creating stash file E:\Qt5\3D\build-learnopengl-qt3d-Desktop_Qt_5_7_0_MinGW_32bit-Debug\.qmake.stash
RCC: Error in '..\learnopengl-qt3d-master\assets.qrc': Cannot find file 'shared/assets/model/arm_dif.png'

RCC: Error in '..\learnopengl-qt3d-master\assets.qrc': Cannot find file 'shared/assets/model/arm_showroom_ddn.png'

RCC: Error in '..\learnopengl-qt3d-master\assets.qrc': Cannot find file 'shared/assets/model/arm_showroom_spec.png'

RCC: Error in '..\learnopengl-qt3d-master\assets.qrc': Cannot find file 'shared/assets/model/body_dif.png'

RCC: Error in '..\learnopengl-qt3d-master\assets.qrc': Cannot find file 'shared/assets/model/body_showroom_ddn.png'

RCC: Error in '..\learnopengl-qt3d-master\assets.qrc': Cannot find file 'shared/assets/model/body_showroom_spec.png'

RCC: Error in '..\learnopengl-qt3d-master\assets.qrc': Cannot find file 'shared/assets/model/glass_ddn.png'

RCC: Error in '..\learnopengl-qt3d-master\assets.qrc': Cannot find file 'shared/assets/model/glass_dif.png'

RCC: Error in '..\learnopengl-qt3d-master\assets.qrc': Cannot find file 'shared/assets/model/hand_dif.png'

RCC: Error in '..\learnopengl-qt3d-master\assets.qrc': Cannot find file 'shared/assets/model/hand_showroom_ddn.png'

RCC: Error in '..\learnopengl-qt3d-master\assets.qrc': Cannot find file 'shared/assets/model/hand_showroom_spec.png'

RCC: Error in '..\learnopengl-qt3d-master\assets.qrc': Cannot find file 'shared/assets/model/helmet_diff.png'

RCC: Error in '..\learnopengl-qt3d-master\assets.qrc': Cannot find file 'shared/assets/model/helmet_showroom_ddn.png'

RCC: Error in '..\learnopengl-qt3d-master\assets.qrc': Cannot find file 'shared/assets/model/helmet_showroom_spec.png'

RCC: Error in '..\learnopengl-qt3d-master\assets.qrc': Cannot find file 'shared/assets/model/leg_dif.png'

RCC: Error in '..\learnopengl-qt3d-master\assets.qrc': Cannot find file 'shared/assets/model/leg_showroom_ddn.png'

RCC: Error in '..\learnopengl-qt3d-master\assets.qrc': Cannot find file 'shared/assets/model/leg_showroom_spec.png'

RCC: Error in '..\learnopengl-qt3d-master\assets.qrc': Cannot find file 'shared/assets/model/nanosuit.mtl'

RCC: Error in '..\learnopengl-qt3d-master\assets.qrc': Cannot find file 'shared/assets/model/nanosuit.obj'

RCC: Error in '..\learnopengl-qt3d-master\assets.qrc': Cannot find file 'shared/assets/texture/skybox/skybox_negx.jpg'

RCC: Error in '..\learnopengl-qt3d-master\assets.qrc': Cannot find file 'shared/assets/texture/skybox/skybox_negy.jpg'

RCC: Error in '..\learnopengl-qt3d-master\assets.qrc': Cannot find file 'shared/assets/texture/skybox/skybox_negz.jpg'

RCC: Error in '..\learnopengl-qt3d-master\assets.qrc': Cannot find file 'shared/assets/texture/skybox/skybox_posx.jpg'

RCC: Error in '..\learnopengl-qt3d-master\assets.qrc': Cannot find file 'shared/assets/texture/skybox/skybox_posy.jpg'

RCC: Error in '..\learnopengl-qt3d-master\assets.qrc': Cannot find file 'shared/assets/texture/skybox/skybox_posz.jpg'

RCC: Error in '..\learnopengl-qt3d-master\assets.qrc': Cannot find file 'shared/assets/model/planet.mtl'

RCC: Error in '..\learnopengl-qt3d-master\assets.qrc': Cannot find file 'shared/assets/model/planet_Quom1200.png'

RCC: Error in '..\learnopengl-qt3d-master\assets.qrc': Cannot find file 'shared/assets/model/Rock-Texture-Surface.jpg'

RCC: Error in '..\learnopengl-qt3d-master\assets.qrc': Cannot find file 'shared/assets/model/rock.mtl'

RCC: Error in '..\learnopengl-qt3d-master\assets.qrc': Cannot find file 'shared/assets/model/planet.obj'

RCC: Error in '..\learnopengl-qt3d-master\assets.qrc': Cannot find file 'shared/assets/model/rock.obj'

RCC: Error in '..\learnopengl-qt3d-master\assets.qrc': Cannot find file 'shared/assets/model/arm_dif.png'

RCC: Error in '..\learnopengl-qt3d-master\assets.qrc': Cannot find file 'shared/assets/model/arm_showroom_ddn.png'

RCC: Error in '..\learnopengl-qt3d-master\assets.qrc': Cannot find file 'shared/assets/model/arm_showroom_spec.png'

RCC: Error in '..\learnopengl-qt3d-master\assets.qrc': Cannot find file 'shared/assets/model/body_dif.png'

RCC: Error in '..\learnopengl-qt3d-master\assets.qrc': Cannot find file 'shared/assets/model/body_showroom_ddn.png'

RCC: Error in '..\learnopengl-qt3d-master\assets.qrc': Cannot find file 'shared/assets/model/body_showroom_spec.png'

RCC: Error in '..\learnopengl-qt3d-master\assets.qrc': Cannot find file 'shared/assets/model/glass_ddn.png'

RCC: Error in '..\learnopengl-qt3d-master\assets.qrc': Cannot find file 'shared/assets/model/glass_dif.png'

RCC: Error in '..\learnopengl-qt3d-master\assets.qrc': Cannot find file 'shared/assets/model/hand_dif.png'

RCC: Error in '..\learnopengl-qt3d-master\assets.qrc': Cannot find file 'shared/assets/model/hand_showroom_ddn.png'

RCC: Error in '..\learnopengl-qt3d-master\assets.qrc': Cannot find file 'shared/assets/model/hand_showroom_spec.png'

RCC: Error in '..\learnopengl-qt3d-master\assets.qrc': Cannot find file 'shared/assets/model/helmet_diff.png'

RCC: Error in '..\learnopengl-qt3d-master\assets.qrc': Cannot find file 'shared/assets/model/helmet_showroom_ddn.png'

RCC: Error in '..\learnopengl-qt3d-master\assets.qrc': Cannot find file 'shared/assets/model/helmet_showroom_spec.png'

RCC: Error in '..\learnopengl-qt3d-master\assets.qrc': Cannot find file 'shared/assets/model/leg_dif.png'

RCC: Error in '..\learnopengl-qt3d-master\assets.qrc': Cannot find file 'shared/assets/model/leg_showroom_ddn.png'

RCC: Error in '..\learnopengl-qt3d-master\assets.qrc': Cannot find file 'shared/assets/model/leg_showroom_spec.png'

RCC: Error in '..\learnopengl-qt3d-master\assets.qrc': Cannot find file 'shared/assets/model/nanosuit.mtl'

RCC: Error in '..\learnopengl-qt3d-master\assets.qrc': Cannot find file 'shared/assets/model/nanosuit.obj'

RCC: Error in '..\learnopengl-qt3d-master\assets.qrc': Cannot find file 'shared/assets/texture/skybox/skybox_negx.jpg'

RCC: Error in '..\learnopengl-qt3d-master\assets.qrc': Cannot find file 'shared/assets/texture/skybox/skybox_negy.jpg'

RCC: Error in '..\learnopengl-qt3d-master\assets.qrc': Cannot find file 'shared/assets/texture/skybox/skybox_negz.jpg'

RCC: Error in '..\learnopengl-qt3d-master\assets.qrc': Cannot find file 'shared/assets/texture/skybox/skybox_posx.jpg'

RCC: Error in '..\learnopengl-qt3d-master\assets.qrc': Cannot find file 'shared/assets/texture/skybox/skybox_posy.jpg'

RCC: Error in '..\learnopengl-qt3d-master\assets.qrc': Cannot find file 'shared/assets/texture/skybox/skybox_posz.jpg'

RCC: Error in '..\learnopengl-qt3d-master\assets.qrc': Cannot find file 'shared/assets/model/planet.mtl'

RCC: Error in '..\learnopengl-qt3d-master\assets.qrc': Cannot find file 'shared/assets/model/planet_Quom1200.png'

RCC: Error in '..\learnopengl-qt3d-master\assets.qrc': Cannot find file 'shared/assets/model/Rock-Texture-Surface.jpg'

RCC: Error in '..\learnopengl-qt3d-master\assets.qrc': Cannot find file 'shared/assets/model/rock.mtl'

RCC: Error in '..\learnopengl-qt3d-master\assets.qrc': Cannot find file 'shared/assets/model/planet.obj'

RCC: Error in '..\learnopengl-qt3d-master\assets.qrc': Cannot find file 'shared/assets/model/rock.obj'

can not find image

when i run this example by QtCreator, there are some tips that can not find image. And because this, example can not render material. how can i find that image? thank you very much.

Some demo are crashed

Hello,
It's very nice to know your github project providing such great tutorial.

I encounter some problem when run some demo, such as; textures2. The program is crash with message:

qml: In total 39 samples.
qml: [Resources] app:0:file:../
qml: [Resources] assets:0:file:../
qml: [Resources] isGL33Core: 0, isGLES30: 1, isGLES20: 0.
qml: [Resources] app:1:qrc:/
qml: [Resources] isGL33Core: 0, isGLES30: 1, isGLES20: 0.
No camera found and automatic aspect ratio requested
No Input Settings found, keyboard and mouse events won't be handled
The program has unexpectedly finished.

`
Could you please check it?

Lack of images

the follow images not found in you project:
("skybox/skybox_posz.jpg"),
("skybox/skybox_posy.jpg"),
("skybox/skybox_posx.jpg"),
("skybox/skybox_negz.jpg"),
("skybox/skybox_negy.jpg"),
("skybox/skybox_negx.jpg"),
("Rock-Texture-Surface.jpg"),
("planet_Quom1200.png"),
("leg_showroom_spec.png"),
("leg_showroom_ddn.png"),
("leg_dif.png"),
("helmet_showroom_spec.png"),
("helmet_showroom_ddn.png"),
("helmet_diff.png"),
("hand_showroom_spec.png"),
("hand_showroom_ddn.png"),
("hand_dif.png"),
("glass_dif.png"),
("glass_ddn.png"),
("body_showroom_spec.png"),
("body_showroom_ddn.png"),
("body_dif.png"),
("arm_showroom_spec.png"),
("arm_showroom_ddn.png"),
("arm_dif.png"),

Missing some qml files

Hi,
It looks some missing files
qrc:/qml/geometry_shader.qml: No such file or directory
qrc:/qml/instancing.qml: No such file or directory
qrc:/qml/light_blinnphong.qml: No such file or directory
qrc:/qml/cubemaps_final.qml: No such file or directory
qrc:/qml/cubemaps_skybox.qml: No such file or directory
qrc:/qml/framebuffer.qml: No such file or directory
qrc:/qml/blending_alpha.qml: No such file or directory
qrc:/qml/blending_discard.qml: No such file or directory
qrc:/qml/stencil_testing.qml: No such file or directory

I checked the github, there is no these files.

No examples working properly

Hi,
I can't get the program to work. The main program runs, but all examples show nothing but one-color canvas.

// while running I get some libpng warnings
libpng warning: iCCP: known incorrect sRGB profile

// after changing example
No render surface selector found in frame graph
No render surface selector found in frame graph
No camera found and automatic aspect ratio requested
No Input Settings found, keyboard and mouse events won't be handled

environment:
OpenGL 4.3 CoreProfile
Qt 5.7.1
Linux (fedora)

寻求帮助

我看到了您写的一个MikuMikuDance 下的反运动学,请问,您可以共享您的源代码和工程项目文件。我的电话:13640909510,打我电话20元电话补贴。微信:daixiongming

File not found

I saw some demo lacks of file and there are error message :
For example, when I run "import model" 👍

QML debugging is enabled. Only use this in a safe environment.
qml: In total 39 samples.
qml: [Resources] app:0:file:../
qml: [Resources] assets:0:file:../
qml: [Resources] isGL33Core: 0, isGLES30: 1, isGLES20: 0.
qml: [Resources] app:1:qrc:/
qml: [Resources] isGL33Core: 0, isGLES30: 1, isGLES20: 0.
qrc:/qml/model.qml: File not found

Could you please check it ?

Issue with MacOS

Thanks for this very nice Qt3d material.
I successfully run it under GNU/Linux but can't make it work with MacOS.
Here is my log :

qml: [Resources] app:1:qrc:/
qml: [Resources] isGL33Core: 0, isGLES30: 1, isGLES20: 0. 
qml: [Resources] assets:1:qrc:/
QOpenGLShader::compile(Fragment): ERROR: 0:1: '' :  #version required and missing.
ERROR: 0:8: 'varying' : syntax error: syntax error

*** Problematic Fragment shader source code ***
#define lowp
#define mediump
#define highp
#line 1

            uniform highp float qt_Opacity;
            uniform mediump float relativeSizeX;
            uniform mediump float relativeSizeY;
            uniform mediump float spread;
            uniform lowp vec4 color;
            varying highp vec2 qt_TexCoord0;

            highp float linearstep(highp float e0, highp float e1, highp float x) {
                return clamp((x - e0) / (e1 - e0), 0.0, 1.0);
            }

            void main() {
                lowp float alpha =
                    smoothstep(0.0, relativeSizeX, 0.5 - abs(0.5 - qt_TexCoord0.x)) *
                    smoothstep(0.0, relativeSizeY, 0.5 - abs(0.5 - qt_TexCoord0.y));

                highp float spreadMultiplier = linearstep(spread, 1.0 - spread, alpha);
                gl_FragColor = color * qt_Opacity * spreadMultiplier * spreadMultiplier;
            }
        

***
No camera found and automatic aspect ratio requested
No Input Settings found, keyboard and mouse events won't be handled

It seems the shader variant is not correct but I couldn't see from where it is loaded.
My Qt version is 5.7.1 and my OpenGL version is supposed to be 4.1 (from this kb https://support.apple.com/en-us/HT202823)

However glxinfo give me this feedback :

OpenGL vendor string: Intel Inc.
OpenGL renderer string: Intel(R) Iris(TM) Graphics 6100
OpenGL version string: 2.1 INTEL-10.22.25
OpenGL shading language version string: 1.20

Thanks for your help.

cc1plus.exe: out of memory allocating 1073745919 bytes

cc1plus.exe: out of memory allocating 1073745919 bytes

因为 assets 文件夹下的资源文件太大,超过了 20 mb,所以编译时就报了内存分配错误。

编译环境为:

win7 Qt 5.7.0 MinGW

请原谅我还在用 32 位编译器。

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.