README
This commit is contained in:
		
							parent
							
								
									d0c8316f79
								
							
						
					
					
						commit
						dcbeb26738
					
				
							
								
								
									
										68
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										68
									
								
								README.md
									
									
									
									
									
								
							@ -7,24 +7,40 @@ Qtk is a Qt OpenGL graphics library created primarily for my own learning
 | 
				
			|||||||
purposes. The library wraps some QOpenGL functionality in convenience classes
 | 
					purposes. The library wraps some QOpenGL functionality in convenience classes
 | 
				
			||||||
that allow rendering geometry in 2D and 3D using custom GLSL shader programs.
 | 
					that allow rendering geometry in 2D and 3D using custom GLSL shader programs.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
The long-term goal for this project is to create a tool that I can use to
 | 
					The Qtk desktop application provides a model loader using [Assimp](https://assimp.org/) within a Qt widget application.
 | 
				
			||||||
practice shader coding or graphics programming techniques. In doing this I hope
 | 
					You can fly around the scene using WASD while holding down the right mouse button.
 | 
				
			||||||
to also learn more about the Qt UI framework, and the CMake build system.
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
Key features that are planned:
 | 
					Key features that are planned:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
* Runtime loading of `.obj` or similar 3D models.
 | 
					- [x] Runtime loading of `.obj` or similar 3D models.
 | 
				
			||||||
* Drag-and-drop interaction for adding objects to the scene.
 | 
					- [x] Drag-and-drop interaction for adding objects to the scene.
 | 
				
			||||||
* Runtime reloading of modified GLSL shaders attached to objects within scenes.
 | 
					- [ ] Runtime reloading of modified GLSL shaders attached to objects within scenes.
 | 
				
			||||||
* Multiple views of a scene at one time.
 | 
					- [ ] Multiple views of a scene at one time.
 | 
				
			||||||
* Camera control modes such as panning, orbiting, or following objects.
 | 
					- [ ] Camera control modes such as panning, orbiting, or following objects.
 | 
				
			||||||
* Save / load for scene data. The current inheritance model is temporary.
 | 
					- [ ] Save / load for scene data. The current inheritance model is temporary.
 | 
				
			||||||
* Basic text editor for quickly modifying shaders attached to objects.
 | 
					- [ ] Basic text editor for quickly modifying shaders attached to objects.
 | 
				
			||||||
* Shader / object properties panel to modify related settings.
 | 
					- [ ] Shader / object properties panel to modify related settings.
 | 
				
			||||||
* Reduce size of application resources and git references.
 | 
					- [ ] Reduce size of application resources and git references.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
The Qtk desktop application provides a model loader
 | 
					
 | 
				
			||||||
using [Assimp](https://assimp.org/) within a Qt widget application.
 | 
					
 | 
				
			||||||
 | 
					Spartan with no normals -
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Spartan with normals -
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Object names can be double-clicked in the tree view panel for quick camera
 | 
				
			||||||
 | 
					navigation. All side panels and toolbars are dockable widgets that can be popped out
 | 
				
			||||||
 | 
					and reorganized as needed. Panels can also be stacked to create a docked widget with
 | 
				
			||||||
 | 
					tabs. The central widget that provides the camera view into the scene cannot be
 | 
				
			||||||
 | 
					detached from the main window in this way. See the `View` menu to enable debug
 | 
				
			||||||
 | 
					console widgets for open scenes or reopen previously closed panels.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The small triangles floating near 3D models represent the light source being used for the shader.
 | 
				
			||||||
 | 
					These appear on models using phong, specular, and diffuse lighting techniques.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
For examples of using the Qtk API, see the `example-app` project in the root of
 | 
					For examples of using the Qtk API, see the `example-app` project in the root of
 | 
				
			||||||
this repository.
 | 
					this repository.
 | 
				
			||||||
@ -177,30 +193,6 @@ cmake --install build-all/ --component qtk_example --prefix=install
 | 
				
			|||||||
See the README in the [example-app/](example-app) subdirectory for instructions
 | 
					See the README in the [example-app/](example-app) subdirectory for instructions
 | 
				
			||||||
on standalone builds.
 | 
					on standalone builds.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### Controls
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
You can fly around the scene if you hold the right mouse button and use WASD.
 | 
					 | 
				
			||||||
If you see a small triangle floating by a model it represents the light source
 | 
					 | 
				
			||||||
that is being used for the shader rendering the model. These appear on models
 | 
					 | 
				
			||||||
using phong, specular, and diffuse lighting techniques.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Object names can be double-clicked in the tree view panel for quick camera
 | 
					 | 
				
			||||||
navigation. All panels and toolbars are dockable widgets that can be popped out
 | 
					 | 
				
			||||||
and reorganized as needed. Panels can be stacked to create a docked widget with
 | 
					 | 
				
			||||||
tabs. The central widget that provides the camera view into the scene cannot be
 | 
					 | 
				
			||||||
detached from the main window in this way. See the `View` menu to enable debug
 | 
					 | 
				
			||||||
console widgets for open scenes or reopen previously closed panels.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||

 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Spartan with no normals -
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||

 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Spartan with normals -
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||

 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#### Development
 | 
					#### Development
 | 
				
			||||||
 | 
					
 | 
				
			||||||
This project uses version `15.0.5` of `clang-format`.
 | 
					This project uses version `15.0.5` of `clang-format`.
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user