MitchellHansen
e45df185f7
Cleaned up Map and the Octree. Did some testing and refactoring of generation code. Interleaved data is now good, also changed the block stack dealio to just a blob of uint64_t data. Used a GCC and by extension MSVC extension which speeds up count_bits by a good bit. After all optimizations, getVoxel is now around 10-15 times faster.
8 years ago
MitchellHansen
d1b9ecd3e5
Octree traversal now works perfectly, edge cases worked out
8 years ago
MitchellHansen
30959128e4
Hunting down some bugs and verfiying correct oct-tree traversal, not quite there yet but close
8 years ago
MitchellHansen
5e222a0331
Added new demo, tweaked some values to produce better lighting
8 years ago
MitchellHansen
7e5d4ef947
10 FPS average increase from changing global work size to 2D
8 years ago
MitchellHansen
6a3eaa04f7
Added color to lights, added a gui slider to control the single light color
8 years ago
MitchellHansen
3aaffce566
Refactored and commented the Hardware Caster. Cleaned up many small things
8 years ago
MitchellHansen
50c6d68944
Switched Utils name back. Converted the current debug text over to ImGui.
8 years ago
MitchellHansen
15fb922c27
Had some include troubles, renamed util but need to rename it back to .hpp. Switched the fps counter to run with imgui
8 years ago
MitchellHansen
394c9821fc
added imgui to the app
8 years ago
MitchellHansen
033e29d9b1
Fixed small ifdef bug, added quick-sfml-templates fps graph
8 years ago
MitchellHansen
b7d4191d82
Fixed mac compatability
8 years ago
System Administrator
f36b7ebb21
Added macOS compatability again
8 years ago
MitchellHansen
0a457f50a6
A decent amount of progress on voxel traversal. Converted most of it to C code to make the CL version easier
8 years ago
MitchellHansen
04a68c1dec
Fixed a small bug regarding to AMD vs Intel OpenCL implementations
8 years ago
MitchellHansen
49253f4907
small tweak
8 years ago
MitchellHansen
b0188909a3
added the bitset idx tracking
8 years ago
MitchellHansen
043eeecb80
Initial traversal of the heirarchy
8 years ago
MitchellHansen
0c9ef2ae6a
It seems that the octree has been built correctly. Going to use bitset to count children, not sure how I'm going to determine what quadrants they lie in. Perhaps masks?
8 years ago
MitchellHansen
6534e3303b
One more file
8 years ago
MitchellHansen
0f786b8647
still puzzling over how to do the voxel traversal
8 years ago
MitchellHansen
91e9de347e
It's time to do the voxel traversal. Going to need to come up with a linear algorithm that doesn't take forever
8 years ago
MitchellHansen
f60c475531
removed a few bugs relating to terminating sockets prior to program end.
8 years ago
MitchellHansen
ab1fcb9678
Hooked up the phone controller to the light and added a demo video at 1440x900
8 years ago
MitchellHansen
e364c5380d
Lights are now working correctly. Need to update the kernel to account for multiple lights, and add sfEventSubscriber to the LightHandler
8 years ago
MitchellHansen
6e0d5814e1
Added some documentation on the lights. Got most everything tidied up. Having some issues with std::moving unique ptrs. Going to change them to shared_ptr
8 years ago
MitchellHansen
bfb6d922a3
Working on lights, I'm conceeding and just using a fixed array. I think it will be faster in the long run, as I won't have to rebind the lights when I add/remove one. Also wrestling with really lame compiler erros with these templated pointers
8 years ago
MitchellHansen
0047db0a65
Not sure if I'm a huge fan that I have to specify the folders in the includes now
8 years ago
MitchellHansen
afa6ce463a
Whoops, forgot to remove the old stuff
8 years ago
MitchellHansen
eb54125a64
Added a function which creates VS filters that match the directory structure.
8 years ago
MitchellHansen
3571bdcd61
Fixed all the compiler warnings, fixed depreciated screenshot function
8 years ago
MitchellHansen
fa047f9e3a
Wrestling with the compiler to pass these shared_ptr's
8 years ago
MitchellHansen
a01b089d12
Still wrestling with a good way to hide the packing
8 years ago
MitchellHansen
effed8a2bf
Working more on the lights. Trying to get around the packing requirements for passing data to CL
8 years ago
MitchellHansen
3f0a99a435
getting started on the lights
8 years ago
MitchellHansen
03a7ee43fd
working on a little maze generator for the demo
8 years ago
MitchellHansen
a69f7258f4
Netork control of the camera now works, slight hitch every few seconds though. Not sure how to track that down
8 years ago
MitchellHansen
1627fe4572
Textures were suprisingly trivial with the plane intersection code hashed out
8 years ago
MitchellHansen
73026bc65d
Very very close to pixel perfect shadows. Having some of that axis switch malarchy slowing things down
8 years ago
MitchellHansen
abec38e7c7
Finally found the root of that off by one error. Changed up the readme.
8 years ago
MitchellHansen
129e475b15
Fixed the way lights were linked to opencl, did some tweaking of the phong lighting.
8 years ago
MitchellHansen
10e3ba43fa
Events are now passing correctly, small bug with held keys that needs fixing
8 years ago
MitchellHansen
0e1e9af37c
More work on the event system, sf::Events are completely wrapped now.
8 years ago
MitchellHansen
36851ad011
Merge branch 'master' of http://github.com/mitchellhansen/voxel-raycaster
8 years ago
MitchellHansen
2e0227419c
Did a lot of boilerplate on the Event wrapper pt.2
8 years ago
MitchellHansen
4cd9bbb4ed
Did a lot of boilerplate on the Event wrapper
8 years ago
MitchellHansen
0974ab9e83
Some tweaks to get the linux build running -fixed
8 years ago
MitchellHansen
791aa96da7
Some tweaks to get the linux build running
8 years ago
MitchellHansen
3c91614f45
Working on a messaging system for sf events
8 years ago
MitchellHansen
bb9fab6305
Added lookat function. Fixed various coordinate missmatches and issues. Fixed camera movement. Added some input functions. I need some way to log fps and find those hitches
8 years ago
MitchellHansen
58867415c7
Fixed bug regarding the top octree level
8 years ago
MitchellHansen
8a9237ce50
Added some debug functions
8 years ago
MitchellHansen
97545e6cec
Was shiting a 64 bit value with a 32, msvc is smart
8 years ago
MitchellHansen
c6ac333232
A decent ways towards getting the octree built. Small snag in the way fully valid or invalid non-leafs are handled
8 years ago
MitchellHansen
b844744a97
Whoops, forgot to saven
8 years ago
MitchellHansen
51a08fc0bb
Various tweaks and modifications
...
Some preliminary testing of map
8 years ago
MitchellHansen
259f6a8488
Got some geometry up and rotating. It will be pretty trivial to pass in
...
the camera rotation now and have it follow along.
8 years ago
MitchellHansen
5e58ade16f
Modified CMake to now find and link GLEW
...
Slight tweaks to how CMake interacts with VS
Added small OpenGL testing class which draws over the raycasted image
Going to use Gl to start helping with debug / enabling hybrid rendering
8 years ago
MitchellHansen
8c1f18ac70
Software raycasting now works, but has some major problems / is extremely
...
slow. Perhaps it will only be useful in debugging the kernel via emulation
8 years ago
MitchellHansen
b2988f0e13
Would help if I added the files
8 years ago
MitchellHansen
5f24a4cf3f
A good portion of the fallback software caster is done.
...
Need to test, add global lighting, add switch
8 years ago
MitchellHansen
d1bd4ce667
The new rendering method now works on the full compat case.
...
Added a kernel to help test opencl data passing
renamed the kernels, buffers, etc.
8 years ago
MitchellHansen
5528e03c69
Saving minor tweaks
8 years ago
MitchellHansen
518cc757a3
Lots of work done moving the various raycasting implementations over to a
...
consolidated RayCaster class.
8 years ago
MitchellHansen
45627e6a85
Whoops, forgot to save the files, same commit as before
8 years ago
MitchellHansen
51093beaca
Starting to condense the rendering and switching between the different
...
methods
8 years ago
MitchellHansen
561c07c602
Turned off experimental phong lighting in the kernel
...
fixed all compiler errors thrown by MSVC
Switched experimental octree map back to the old map
Refactored old map system, prettied it up
8 years ago
MitchellHansen
391dc63ec8
Bit of fiddling around while refractoring
8 years ago
MitchellHansen
c734614e5f
cleaned up an unused file, added check for sharing
8 years ago
MitchellHansen
de2f0ad6a1
In the middle of a couple of things right now, but decided to focus a
...
little bit less on the lighting and start laying groundwork for the SVO
The map section was in real need of some love so I deleted a bunch of
stuff and started prototyping the pointer arithmetic that I need to do
8 years ago
MitchellHansen
1c750451f3
Added a 1/4 working phong shading function, breaks when the light
...
direction in in negative values. The normals of voxels also are
symmetrical which needs to be fixed.
8 years ago
MitchellHansen
0b3557cd5e
Tweaked indexing, there is a discrepancy at z_max values that I need to
...
sort out. Added some 2d optimization functions for fun, currently doing a
class involving them
8 years ago
MitchellHansen
1620f40d02
Fixed the camera movement so it now take into account sub-voxel movement
...
Also fixed the distortion around the XY axes
8 years ago
MitchellHansen
fe0fbc04e1
little edit to get rid of some cl boilerplate
8 years ago
MitchellHansen
e13280bb07
added relative camera controls, now handles like an actual fly cam.
8 years ago
92aee8c4ca
Would help if I actually added the files
8 years ago
MitchellHansen
4e96985104
added lighting, stole a terrain generator and ported it.
8 years ago
MitchellHansen
e1080baab0
opencl has no rand, SO rand method to make fog a little better
8 years ago
MitchellHansen
6f5d2b2f6f
Changed to non branching algo, sped up a good 30-50 ms at the current max
...
ray dist. Also changed bounds checking a little, not sure if it's faster
8 years ago
MitchellHansen
160756186d
mouse and camera movement work, stress testing. Can actually handle an
...
impressive amount of resolution and voxel space for 0 optimization!
8 years ago
MitchellHansen
f487895f9f
that was a pain. Got it working on windows again. MSVC was being really
...
picky about a few errors. Good thing though, I'm not really sure why
clang + osx let me be that lax with memory
8 years ago
mitchellhansen
cf607382a9
WORKING! Awesome! It now casts fully inside the gpu,
...
context is then switched to gl and then rendered via sfml.
It has no loop, no controls, and the aspect ratio is off,
but holy hell it works!
8 years ago
mitchellhansen
a7234675cb
Continuing on adding argument handling.
...
Added a small sample texture and sprite which can be handed over to either gl or cl and then handed back. It can then be rendered.
Changed to just an array of floats for the view matrix
8 years ago
mitchellhansen
c3902c2f6e
Added args and buffer handling, but now clEnqueueNDRangeKernel is failing
...
with the error invalid command queue. Haven't seen that one before, and
cursory google suggests it's a problem with MBP's. Fun! I'll keep taking
a look, and I'll try it on my windows machine here soon
8 years ago
mitchellhansen
0c70c24a52
Switched names, thinking about how to do kernel args, and buffers.
...
Need to do a bit more reading on how to set up interop.
Also need to figure out the buffer thing for regular primative buffers, and also image buffers
8 years ago
mitchellhansen
5dea2494a0
Large amount done. OpenCL is almost completely abstracted out to the class
...
from init to kernel compilation. Next will be getting buffer handling, executing, and reading done.
Changed the kernel to a more minimal example.
Added a jump table for error codes and an assert function for error checking.
Added a routine to compare all the available cl devices and platforms, chooses the high clock of either the GPU or CPU.
8 years ago
MitchellHansen
edd8075afb
Added a quick printout of the hardware info. Running into a problem choosing between platforms, going to abstract CL out into it's own class and hide all that logic
8 years ago
mitchellhansen
8f809f5f70
Starting on OpenCL, got cmake to link it correctly, and started on
...
a minimal example
8 years ago
mitchellhansen
bf45af9bab
Added the SFML vector class. Need to extend it to have
...
the vector operations I want
Changes to be committed:
modified: CMakeLists.txt
modified: README.md
renamed: src/Curses.h -> include/Curses.h
new file: include/Vector3.h
new file: src/Vector3.cpp
8 years ago
mitchellhansen
c431d7452a
Lighting, testing voxel generation
8 years ago
mitchellhansen
14987e3ba7
There we go! The raycaster now has a camera that renders without distortion and can be pitched, yawed, and moved on the XYZ axis. I'm not sure now if I want to: Add lighting, improve performance, or start working on porting it to OpenCL
8 years ago
mitchellhansen
2b7dceee1b
Moved the view plane calc to the constructor, cleaned up old code. Added / removed relevant comments
8 years ago
mitchellhansen
d609ed695a
Going to need to get rid of the spherical camera
8 years ago
MitchellHansen
eb889f9937
added header to play nice with macos
8 years ago
MitchellHansen
3deb3a2b08
alright, tried a different method of assigning voxel step directions and I
...
think it's working. The 3 negative walls are still very flat, and the
lower XYZ numbers still distort the viewport
8 years ago
MitchellHansen
f1c84c85b5
So it's rendering pretty much perfectly in the XYZ+ range but things break
...
down when I start hitting negative values. I have a feeling this is going
to be a lot of trial and error. Oh well
8 years ago
MitchellHansen
0b8cd9a194
things are casting now and sfml is rendering the way I want it to.
...
The voxel stepping is still all messed up, and it seems that there is
some data corruption on the map that I'll need to dig into
8 years ago
MitchellHansen
2b46bef923
Basic render loop is taking shape. Digging back into the
...
raycasting will be slightly annoying
8 years ago
MitchellHansen
37ef472f61
More work done on the ray
8 years ago
MitchellHansen
4432c0338b
added the map, switched branches
8 years ago