|
1 |
| -# qml3DWater |
| 1 | +``` |
| 2 | +GraphicsProgramming |
| 3 | +=================== |
2 | 4 |
|
3 |
| -Qt3D/QML implementation of water reflection/refraction using clipping planes. |
| 5 | +Demos related to **OpenGL**, **Qt/QML**, **OpenCV** and other X technologies. |
4 | 6 |
|
5 |
| -The water is just a simple a `PlaneMesh` entity and most of the work is done by `water.frag`: |
6 |
| - |
7 |
| -- DuDv map is used to create distortions on the water surface; |
8 |
| -- The Fresnel effect allows the water to be more transparent when looking from above; |
9 |
| -- Specular highlights are based on a Normal map; |
10 |
| -- The mesh of the water is not changed at all by the vertex shader; |
11 |
| - |
12 |
| -<img src="screenshot.gif" alt="Screenshot" width="400" height="400"> |
13 |
| - |
14 |
| -**References**: |
15 |
| - |
16 |
| -- [OpenGL Water Tutorials](https://www.youtube.com/playlist?list=PLRIWtICgwaX23jiqVByUs0bqhnalNTNZh) |
| 7 | +Demo | Description | Screenshot |
| 8 | +----------------------------------|----------------------------------------|---------------------------------------- |
| 9 | +**cvDisplacementMapFilter** | Displacement Map Filter implementation in C++/OpenCV that renders two images as a movie clip. | <img src="cvDisplacementMapFilter/screenshot.gif" width="200"/> |
| 10 | +**cvFruitClassification** | C++/OpenCV port of [a cool Python application](http://github.com/eliezerb/FruitClassification) that performs Oranges vs Apples classification using LDA. | <img src="cvFruitClassification/screenshot.jpg" width="200"/> |
| 11 | +**cvQtImage** | C++/OpenCV/Qt example that displays an image and the RGB values of a pixel based on mouse coordinates. | <img src="cvQtImage/screenshot.jpg" width="200"/> |
| 12 | +**cvQtCameraGL** | An interesting demo that shows how to use C++/OpenCV to retrieve frames from the camera and draw them with Qt `QGLWidget` for GPU rendering (OpenGL). | <img src="cvQtCameraGL/screenshot.gif" width="200"/> |
| 13 | +**cvQtVideo** | Another C++/OpenCV/Qt example on how to display video files with configurable Aspect Ratio. | <img src="cvQtVideo/screenshot.gif" width="200"/> |
| 14 | +**cvWatershedSegmentation** | [Stackoverflow answer](https://stackoverflow.com/a/25851951/176769) that uses C++/OpenCV's watershed segmentation with distance transform to segment beans. | <img src="cvWatershedSegmentation/screenshot.jpg" width="200"/> |
| 15 | +**ipcQtGesture** | C++/Qt application that uses the old *Intel® Perceptual Computing SDK 2013* for gesture recognition. Windows only. | No image available |
| 16 | +**qml2DRaycasting** | QML implementation of 2D raycasting. | <img src="qml2DRaycasting/screenshot.gif" width="200"/> |
| 17 | +**qml2DRaycastingEngine** | QML implementation of a 2D raycasting engine. | <img src="qml2DRaycastingEngine/screenshot.gif" width="200"/> |
| 18 | +**qml2DQuadTree** | QML implementation and visualization of the data structure *Quadtree* that offers operations to *insert* new points and *search* them within a rectangular area. | <img src="qml2DQuadTree/screenshot.gif" width="200"/> |
| 19 | +**qml3DTerrain** | Qt3D/QML implementation of dynamic terrain generation based on Perlin noise. | <img src="qml3DTerrain/screenshot.gif" width="200"/> |
| 20 | +**qml3DWater** | Qt3D/QML implementation of water reflection/refraction with Fresnel effect. | <img src="qml3DWater/screenshot.gif" width="200"/> |
| 21 | +**qmlBattery** | A Qt/QML element that displays the amount of energy left in a Battery as horizontal bars according to the charge. For demonstration purposes, the charge value is set dynamically and randomly from the C++ side. | <img src="qmlBattery/screenshot.gif" width="200"/> |
| 22 | +**qt3DRenderer** | A complete 3D Graphics Renderer that demonstrates how to load simple meshes from Wavefront files (with texture) and performs all the required transformations to project them on a 2D color buffer that is copied into a `QImage` object to be displayed with Qt. | <img src="qt3DRenderer/screenshot.gif" width="200"/> |
| 23 | +**qtArduinoSerial** | A simple C++/Qt example on how to print data from a serial (COM) port connected to Arduino. | No image available |
| 24 | +**qtFPSvsTIMEAnimation** | Super educational C++/Qt implementation of *FPS-based and Time-based animation techniques*, as explained by [Steven Lambert](http://blog.sklambert.com/using-time-based-animation-implement/). | <img src="qtFPSvsTIMEAnimation/screenshot.gif" width="180"/> |
| 25 | +**qtGLMdemo** | A customized `QGLWidget` that loads a 3D model from the disk using [Nate Robins GLM library](https://user.xmission.com/~nate/tutors.html) and renders it using native OpenGL calls. | <img src="qtGLMdemo/screenshot.gif" width="200"/> |
| 26 | +**qtKinectVideo** | C++/Qt application based on *Color Basics* from Kinect for Windows SDK 1.8. This demo displays the Color Stream of the camera. | No image available |
| 27 | +**qtLinearRegressionGD** | C++/Qt/Eigen implementation of Linear Regression based on [Daniel Shiffman's tutorials](https://www.youtube.com/watch?v=szXbuO3bVRk). Data is plotted with [Madplotlib](https://github.com/madplotlib/madplotlib) (Qt required). | <img src="qtLinearRegressionGD/screenshot.jpg" width="200"/> |
| 28 | +**qtLogoBlurGL** | A silly C++/Qt/OpenGL demo that renders a logo on a texture and displays a glow around it. | <img src="qtLogoBlurGL/screenshot.jpg" width="200"/> |
| 29 | +**qtSmoothColorTransition** | A C++/Qt application that takes a grayscale image and performs a smooth color transition using a predefined color palette based on linear interpolation. | <img src="qtSmoothColorTransition/screenshot.jpg" width="200"/> |
| 30 | +``` |
0 commit comments