Commit Graph

120 Commits

Author SHA1 Message Date
4a42535f13 Added functions to perform 'octahedral' encoding and decoding of normals.
See http://jcgt.org/published/0003/02/01/paper-lowres.pdf
2014-07-23 23:35:46 +02:00
e9ba998f2f Changes to the folder organization of some files in Visual Studio (via CMake's source_group). 2014-05-28 14:03:26 +02:00
c26686476d Use Qt's resource system to store the shader source
The shader source is included inside each comipled binary file. The
OpenGL example also provides its own shader files which overrides
the default. Common shader code is in the 'common' directory and
each example's custom shader is alongside the example's C++ code.
2014-05-28 10:29:05 +01:00
37ba9ab338 CubicVertex now uses a more memory efficient representation which can be decoded on the CPU or GPU. 2014-05-27 23:01:38 +02:00
140cbc0fc7 Move shader code to external files rather than embedded
A bit of CMake code in each example copies the files to the
correct location and Qt loads them from the application's binary
directory.
2014-05-27 15:08:20 +01:00
d34fd6b3c8 Moved OpenGLWidget into common folder so it can be used by other examples. 2014-05-23 22:11:47 +02:00
4f7e1e6846 Each mesh now has it's own transform matrix applied, so that our example framework can support breaking a volume into regions. 2014-05-23 22:03:57 +02:00
9f5b2e1659 Better templatization of addMesh. 2014-05-23 17:02:46 +02:00
37bdf8e3ac Templatised code for example mesh conversion. 2014-05-23 16:26:56 +02:00
79acf814db Revert "Compile fixes for VS2012"
This reverts commit e8313a683b.
2014-05-23 16:11:53 +02:00
e8313a683b Compile fixes for VS2012 2014-05-23 15:32:28 +02:00
4aae00e4a8 Renamed SurfaceMesh to just Mesh 2014-05-23 15:17:07 +02:00
da8f294847 Comments 2014-05-23 14:37:35 +02:00
4cec89de38 Added ability to specify the visible region so that the example framework can support different volume sizes. 2014-05-23 14:32:46 +02:00
ab741583e4 Renamed extractXxxSurface() to extractXxxMesh() 2014-05-22 23:26:40 +02:00
f8ce3a5f3d Tidying camera code. 2014-05-22 17:03:06 +02:00
16cbb94d90 Rotation is now applied by moving the camera rather than the meshes. 2014-05-22 16:51:41 +02:00
7d55e00f76 More work adding support for multiple meshes. 2014-05-22 16:38:02 +02:00
51e93fdabc Modifying the OpenGLWidget so that it can render multiple meshes. 2014-05-22 16:25:36 +02:00
f2ba500c4c Merge branch 'develop' into feature/vertex-refactor
Conflicts:
	examples/Basic/main.cpp
	examples/Paging/main.cpp
	examples/SmoothLOD/main.cpp
	library/PolyVoxCore/include/PolyVoxCore/CubicSurfaceExtractorWithNormals.h
	tests/TestCubicSurfaceExtractor.cpp
	tests/TestSurfaceExtractor.cpp
	tests/TestVolumeSubclass.cpp
2014-05-12 23:04:19 +02:00
a51eaa4a02 Merge branch 'develop' of https://bitbucket.org/volumesoffun/polyvox into feature/extractor-refactor
Conflicts:
	examples/Basic/main.cpp
2014-05-11 16:21:37 +02:00
573c36db87 Renamed vertex classes to the far more meaningful 'CubicVertex' and 'MarchingCubesVertex'. The old names didn't make much sense, even less so now they are templatized. 2014-05-11 15:17:59 +02:00
b0a8ca8a64 This commit templatizes the vertex classes on voxel types. This was the main change which was made for Cubiquity and it's very messy at the moment. However, this will improve when we make more use of 'auto' to hide the template madness. 2014-05-07 23:47:18 +02:00
5dfa7e2562 The CubicSurfaceExtractor now generates vertices of type PositionMaterialNormal rather than PositionMaterial. The normal property is just a dummy and is not filled in, though conceptually we could put something in there in the future (average normal of surrounding faces?)
The point of this change is to move towards having a single vertex class with known properties (including normal). This makes it simpler to write code which uses the vertices because we always know which properties are present. This will probably be useful when working with vertex buffer objects.
2014-05-05 20:53:47 +02:00
2da902d5f9 This change reverts PolyVox back to using Qt 4.8. This is expected to be a temporary change, required because moving to Qt 5 caused various complications on Windows which we are not yet ready to address.
For more details see here: https://bitbucket.org/volumesoffun/polyvox/issue/41/upgrade-to-qt-5
2014-05-05 20:29:52 +02:00
464d713c2a Remove usage of QOpenGLFunctions and use GLEW instead.
Qt's OpenGL interface was causing problems on Windows since it doesn't mix
well with ANGLE.

Relates to issue #50.
2014-03-23 12:16:02 +00:00
ac16dfd325 Update the BasicExample to use OpenGL 3
The example now uses OpenGL 3 features like Vertex Array Objects and uses
no immediate mode stuff. Qt5 is used for some features like matrices and
shaders.

There is now no dependency on GLEW either.
2014-03-19 21:26:04 +00:00
868fbb84a0 Update to use Qt5
The examples and tests now use Qt5. This allows some nice tidying of the
CMake files, some of which will come in future.

Closes issue #41
2014-03-09 18:02:24 +00:00
acbfb184b8 Wrapped MarchingCubesSurfaceExtractor with functions (part of unclassing). 2014-03-05 16:30:54 +01:00
529e97f71e Added use of auto for determining mesh type. 2014-03-05 15:58:33 +01:00
0755961750 Added support for default parameters. 2014-03-05 15:50:17 +01:00
67ec0d2db8 Initial function wrapper around CubicSurfaceExtractorWithNormals. 2014-03-05 15:41:16 +01:00
248a5c3e29 Removed old logging system. 2014-01-30 22:10:52 +01:00
9ad4c3fcf7 Initial checkin of Timer class. 2013-08-07 23:07:26 +02:00
f3ec94dd75 Reverted changes made for testing. 2013-06-27 16:43:49 +02:00
938eea7c8e Work on tidying LargeVolume... 2013-06-26 22:01:44 +02:00
44d525f591 Tidying up and refactoring LargeVolume. 2013-06-26 17:02:06 +02:00
8ab6d73f0a Work on LargeVolume refactoring - getting FilePager working. 2013-06-25 23:34:58 +02:00
59505d47e9 Tidying up Block and FilePager. 2013-06-23 23:17:40 +02:00
f5ea8878c2 Add a default CompilerCapabilities.h
This file assumes that the compiler doesn't support anything. If building
without CMake, it will be used and if you want to enable things, the file
can be edited.

When using CMake, a proper CompilerCapabilites.h will be generated and
CMake will set the include path order correctly in order to source the
correct file.
2012-12-26 12:54:52 +00:00
74f25eac23 Merge branch 'develop' into feature/cmake-cxx11-detect
Conflicts:
	examples/Basic/CMakeLists.txt
	examples/OpenGL/CMakeLists.txt
	examples/Paging/CMakeLists.txt
	examples/SmoothLOD/CMakeLists.txt
	library/PolyVoxCore/include/PolyVoxCore/Impl/TypeDef.h
2012-12-24 20:08:31 +00:00
312a3def68 Fix GLEW compile error on Windows. 2012-11-26 23:15:19 +00:00
989cd453fe Consolidate glew into one location to speed up build. 2012-11-23 23:01:50 +00:00
3902e00a0f Add a CompilerCapabilities.h.in file which is filled in by CMake
It will #define a each of the basic features detected by CMake which can
then be used by other headers (like TypeDef.h) to set things up for
PolyVox.

It is this file which you will have to manually edit and rename if you want
to skip using CMake.
2012-11-23 15:41:26 +00:00
7f6d952dbe A better fix than 17a2a8e3d1 for GLEW 2012-11-19 12:05:29 +00:00
17a2a8e3d1 Fix include path for glew headers. 2012-11-19 10:44:10 +00:00
03cd1ada6d Small changes to basic example, mostly for clarity. 2012-11-17 16:38:46 +01:00
570b633f6b Now it's really fixed. 2012-11-17 12:37:39 +01:00
a3edb3358b I broke all the examples when I updated GLEW, now fixed. 2012-11-17 12:34:58 +01:00
ba6f3ac48b Updated GLEW to latest version (this fixes some compiler warnings). 2012-11-16 10:48:32 +01:00