polyvox-tva:polyvox-tva.git
5 years agoAdded perterb() to DemoVolumeB, which allows one to do realtime modifications to... master
realazthat [Wed, 28 Mar 2012 00:02:01 +0000 (19:02 -0500)]
Added perterb() to DemoVolumeB, which allows one to do realtime modifications to the volume, and takes care of updating the tree as necessary.
DemoB now perterbs a spherical shape upon mouse click.
Added OGRE_LIB_LINK_DIR to allow non-verbose to Ogre in non-system directory.
Added. some CMakeLists.txt scaffolding for nacl (commented out).
Separated DemoBVolume out to demobvolume.cpp/h, and kept the entry point in demob.cpp/h, and made a separate "library" target for demobvolume for the entry point TU to link to.
Put asserts in cube's set iterator functions, since they are bugged/broken.
Added clear() to cube's set base.
Changed an assert in data.inl to use boost::array::size() instead of static_size, to avoid compile-time warning of "always true".
Added zero_vector() to polyvox_utils.h, and forward declared some other functions in that file, since they are dependent on eachother.
Changed region_size() to reuse get_component().
Added some assers to shrunk().
Added volume_regions_equal(), contains(), vector_closes(), to polyvox_utils.h.
Added Region/Vector (de)serialization to volume_serializer, in polyvox_utils.h.
Changed polyvox_volume_deck_row_cell_range_t to take a const volume reference.
Fixed major typo bug in region_iterator.
test_normals_match_trimesh() now tests with vector_closes(), instead of operator== (broke when running with optimizations turned on).
Fixed up triplanarmaterial.cg to blend macro/mciro texture, and take lighting into account.
Removed any mention of tray-manager or camera-manager from BaseApplication.cpp/h, and generally made the class more modular.
Added toPolyVox() to polyvox_ogre_utils.h.
Made some assert(s) much more succinct by using the test-functions in volume_renderer.cpp (DemoA).

5 years agoForgot to commit test_utils.h ...
realazthat [Thu, 15 Mar 2012 16:16:07 +0000 (11:16 -0500)]
Forgot to commit test_utils.h ...
tva unit test was working on huge dataset, taking too long, modified to work on smaller data set.
Forgot to rename fill_indices() to lock_and_fill_indices() in volume_renderer.cpp .

5 years agoAdded DemoB, a bottom-up LOD approach as per TVA paper.
realazthat [Thu, 15 Mar 2012 16:05:47 +0000 (11:05 -0500)]
Added DemoB, a bottom-up LOD approach as per TVA paper.
Added value_type typedef in branch_t (tva/tree).
Added function shrunk(), an inverse of layered() to tva/polyvox_utils.h .
Genericized negated() to take any type of polyvox Vector3D.
Added get_corner(), create_region(), and corner_cell_box()  to polyvox_utils.h
Modified polyvox_vertex_adjuster to take cell scale into account.
Changed polyvox_volume_deck_row_cell_range_t to take VolumeType as a non-template.
Disabled assertion checking for previous vertices, due to At-Threshold Ambiguity.
Moved draw_axis to ogre_utility.h and modified it to take a ManualObject that was already begin() and it no longer calls end().
Removed vertex_adjustment changing via the keyboard.
Moved ChunkRenderable to ogre_utility.h .
Moved toOgre(corner) to ogre_utility.h .
Moved transformer to ogre_utility.h .
Moved tree_search to ogre_utility.h .
Added lock_and_fill_indices() functions that will fill a HardwareIndexBuffer, and it is specialized to use writeData if the index sizes match the vector of indices.
Created toOgre(region) in polyvox_ogre_utils.h .
Created tva/test_utils.h and moved all the testing functions from tvatest.cpp .
Renamed legacy "children_volume" to "voxel_volume", "initialize_children_volume" to "initialize_voxel_volume", "initialize_volume" to "initialize_mesh_volume", in volume_renderer.h/cpp .
Now using region_iterator to generate voxels in volume_renderer.cpp .

5 years agoRe-disabled degenerate triangle removal in transition_extractor; vertex adjustment...
realazthat [Tue, 13 Mar 2012 16:41:26 +0000 (11:41 -0500)]
Re-disabled degenerate triangle removal in transition_extractor; vertex adjustment stretches these degenerate triangles into valid ones, and if they are removed, there will be a hole in the mesh in their place.

5 years agoMistakenly added a target that is not in git.
realazthat [Tue, 13 Mar 2012 16:32:40 +0000 (11:32 -0500)]
Mistakenly added a target that is not in git.

5 years agoUsing force-inline macro in logic_utlity.
realazthat [Tue, 13 Mar 2012 16:30:14 +0000 (11:30 -0500)]
Using force-inline macro in logic_utlity.
Made iteration_order_t struct which encapsulates the dimension major-order, instead of passing three dimension indices all over.
Large refactor of transition_extractor to extract the regular vertices using the surface_extractor and the general iteration order, and then use the extracted vertices in the transition mesh. This is the only way to obtain the correct normals for these vertices. Previously they were extracted with transition_iteration_order but this resulted in possibly different normals, because of the Marching Cube's algorithm's choice in triangluation with more than tree vertices varies in different iteration orders.
Added iteration_transformer, to transform between the cell positions of the transition face iteration to the corresponding cell-edge positions of the high and low resolution volume on that face.
Removed operator== from cell_vertex; from now on, compare different properties of the vertex manually instead of the entire vertex.
Fixed bad assertion bug typo in tva::detail::regular::cell_vertex::edge_direction()
Made region_iterator helper functions, which iterates through every position in a region.
Moved/created normalize(), lerp(), negate() to polyvox_utils.h as normalized(), netgated(), lerp().
Fixed error in demo_tva_traits_a::vertex_is_internal()
Moved cell_vertex_data out of common.h and specialized for surface_extractor.h
Renamed the cell_pos and preceding_cell_pos to original_cell_pos and cell_pos respectively, to follow the better convention pioneered in transition_extractor
Renabled transition degenerate triangle removal.
Fixed mapping vertices to their previous cells in transition_extractor

5 years agoMoved POLYVOX_FORCE_INLINE macro out of common.h and into its own tva_inline.h
realazthat [Thu, 8 Mar 2012 03:00:45 +0000 (22:00 -0500)]
Moved POLYVOX_FORCE_INLINE macro out of common.h and into its own tva_inline.h
Moved all PolyVox specifics out of common.h/inl and into polyvox_utils.h
Moved index_recorder and null_outputer_iterators into common.h
Abstracted the region calculations into local_region_calculator class
Moved some PolyVox vector/region utility functions out of volume_renderer.h and into polyvox_utils.h
Moved subscript_iterator out of common.h into subscript_iterator.h
Split volume_renderer::render() method into its submethods, and refacted the TutorialApplication class to reflect/utilize this
Changed acceptable_error to take the tree_type instead of just the bounds, also now takes the camera instead of just the camera position
Revamped the unit tests to locate normalization error in the transition vertices
Changed/experimented with material/coloring relationship
Changed demo strategy for material calculation
Temporarily disabled vertex adjustment along transitions, due to transition normalization bug
Moved my_tva_traits to polyvox_utils.h and renamed it to demo_tva_traits_a

5 years agoFixed neighbor transition detection algorithm.
realazthat [Sun, 4 Mar 2012 23:38:14 +0000 (18:38 -0500)]
Fixed neighbor transition detection algorithm.
Added vertex adjustment functionality (Figure 4.12).
Changed valid vertex test to manual in transition_extractor::for_each_triangle(), instead of reusing surface_extractor's.
Remove degenerate triangle elimenation in the transition extractor for fear degenerate triangles might have a use in vertex adjustment. On second thought, it probably does not.
Fixed dumb(p) error in in transition_extractor::dump(), in which I had the high_vertices and low_vertices params switched.

5 years agoFixed transition stich visibility for show_transitions=PATCH_ONLY
realazthat [Thu, 1 Mar 2012 21:47:39 +0000 (16:47 -0500)]
Fixed transition stich visibility for show_transitions=PATCH_ONLY
Fixed some inverted normals, found by trial and error (for transition patches).

5 years agoMinor changes, nothing fixed.
realazthat [Thu, 1 Mar 2012 18:05:13 +0000 (13:05 -0500)]
Minor changes, nothing fixed.

5 years agoImplemented transition stitches for transitions only (as opposed to all stitches...
realazthat [Thu, 1 Mar 2012 07:41:20 +0000 (02:41 -0500)]
Implemented transition stitches for transitions only (as opposed to all stitches always drawn). Still buggy though.
When "4" is pressed on the keyboard, the stitches should change rendering mode (NONE, ALL, PATCH_ONLY).

5 years ago(no commit message)
realazthat [Thu, 1 Mar 2012 01:30:38 +0000 (20:30 -0500)]

5 years ago(no commit message)
realazthat [Wed, 29 Feb 2012 23:16:14 +0000 (18:16 -0500)]

5 years ago(no commit message)
realazthat [Wed, 29 Feb 2012 23:13:21 +0000 (18:13 -0500)]

5 years ago(no commit message)
realazthat [Wed, 29 Feb 2012 23:12:12 +0000 (18:12 -0500)]

5 years ago(no commit message)
realazthat [Wed, 29 Feb 2012 22:55:23 +0000 (17:55 -0500)]

5 years ago(no commit message)
realazthat [Wed, 29 Feb 2012 22:49:36 +0000 (17:49 -0500)]

5 years ago(no commit message)
realazthat [Wed, 29 Feb 2012 22:39:53 +0000 (17:39 -0500)]

5 years ago(no commit message)
realazthat [Wed, 29 Feb 2012 22:37:16 +0000 (17:37 -0500)]