moostrik / ofxflowtools Goto Github PK
View Code? Open in Web Editor NEWopenframeworks addon. Combines 2D fluid simulation, optical flow and more using GLSL shaders. Works best with live camera input.
License: MIT License
openframeworks addon. Combines 2D fluid simulation, optical flow and more using GLSL shaders. Works best with live camera input.
License: MIT License
clang: warning: -lpthread: 'linker' input unused
/Users/eight/repos/openFrameworks/addons/ofxFlowTools/src/mask/ftVelocityMask.cpp:41:3: error: use of undeclared identifier 'colorMaskSwapBuffer'
colorMaskSwapBuffer.allocate(width, height, GL_RGBA);
^
/Users/eight/repos/openFrameworks/addons/ofxFlowTools/src/mask/ftVelocityMask.cpp:42:3: error: use of undeclared identifier 'colorMaskSwapBuffer'
colorMaskSwapBuffer.clear();
^
/Users/eight/repos/openFrameworks/addons/ofxFlowTools/src/mask/ftVelocityMask.cpp:49:18: error: use of undeclared identifier 'saturation'
parameters.add(saturation.set("saturation", 1, 1, 5));
^
/Users/eight/repos/openFrameworks/addons/ofxFlowTools/src/mask/ftVelocityMask.cpp:58:3: error: use of undeclared identifier 'colorMaskSwapBuffer'
colorMaskSwapBuffer.clear();
^
/Users/eight/repos/openFrameworks/addons/ofxFlowTools/src/mask/ftVelocityMask.cpp:60:30: error: use of undeclared identifier 'colorMaskSwapBuffer'
VelocityMaskShader.update(_colorMaskSwapBuffer.src, *densityTexture, *velocityTexture, strength.get());
^
/Users/eight/repos/openFrameworks/addons/ofxFlowTools/src/mask/ftVelocityMask.cpp:61:21: error: use of undeclared identifier 'colorMaskSwapBuffer'
HSLShader.update(_colorMaskSwapBuffer.dst,
^
/Users/eight/repos/openFrameworks/addons/ofxFlowTools/src/mask/ftVelocityMask.cpp:66:3: error: use of undeclared identifier 'colorMaskSwapBuffer'
colorMaskSwapBuffer.swap();
^
/Users/eight/repos/openFrameworks/addons/ofxFlowTools/src/mask/ftVelocityMask.cpp:69:31: error: use of undeclared identifier 'colorMaskSwapBuffer'
gaussianBlurShader.update(*colorMaskSwapBuffer.src, blurPasses.get(), blurRadius.get());
^
/Users/eight/repos/openFrameworks/addons/ofxFlowTools/src/mask/ftVelocityMask.cpp:71:44: error: use of undeclared identifier 'colorMaskSwapBuffer'
luminanceShader.update(luminanceMaskFbo, colorMaskSwapBuffer.src->getTextureReference());
This only occurs using programmable renderer - everything works fine when switching to fixed pipeline.
Specifically, it seems like there's an issue with the inputFbo / ping pong processing for optical flow - when I try to visualize the optical flow input ("input for velocity") in the examples, the image flickers to black every other frame - here's a screen capture:
https://imgur.com/ZST5hUT
This occurs on master branch and Fluid-Rebuild.
GPU is Radeon Pro 560X 4096 MB.
Examples are working normally using programmable renderer on a 2013 MBP with Nvidia GeForce GT 750M, so maybe an AMD / NVidia driver or implementation issue?
Always get this:
[warning] ofGraphics: ofPushStyle(): maximum number of style pushes << 32 reached, did you forget to pop somewhere?
And no particles :-(
Mac Os 10.10
Any suggestions?
Anyone tried running this on an m1?
I've been struggling to go through the definitions and I'm not entirely comfy with shaders yet.
But i've been looking inside the ftOpticalFlow and ftFlow class and can't seem to find the array that would holds all the vector data. Could you point me in the right direction by any chance ? Thanks !
I've tried combining ofxKinectForWindows2 and ofxFlowTools to read data from the kinect camera.
https://github.com/rootux/visionquest
I'm calling the kinect like so:
kinect.getColorSource()->draw(0, 0, cameraFbo.getWidth(), cameraFbo.getHeight());
I've tried the IR and the depth - all seem to be drawing the camera OK *_without *_going through the filters (see attached Image )
What am I missing?
Hello,
I'm trying to build off of master, and building the extended example comes up with the error:
error: unknown type name 'ftAreaFlow'
I couldn't find any reference to that in the repository, is the example out-of-date?
Awesome tool, Thanks!
Might be my lack of experience with fluid simulations, but curious if there's any easy way to take the simulation's current state and just make it slower...
I'm finding that if I get a nice look, then try to slow it down, it then changes the look as it's computing differently. Maybe not something that's possible with fluid simulations in general, but i'd be curious. I was running my app at 60fps going to try 30fps to see if that gives a similar effect then I can interpolate frames possibly.
Thank you for ofxFlowTools!
The flow is ignoring the width and height defined in the setup and instead updating itself with the window size.
Is it by design and can it be disabled?
Hi,
I am running example_core on Ubuntu 16.04 LTS, gcc5 and graphics card : Intel Corporation Haswell-ULT Integrated Graphics Controller.
The example compiled after I changed a few of the functions that were declared as non-void and were not returning any values. In any of the mode I just see the camera input. In mode two a flickering screen.
Any issues you know that might help overcome this ?
I faced a similar issue with ofxFluid, where it returned ofFbo: UNSUPPORTED BUFFER FRAME ERROR.
there's no std::bind2nd method since c++17 , is there any chance can update this?
std::transform(_v.begin(), _v.end(), diff.begin(), std::bind2nd(std::minus(), mean));
I was getting a return value error on line 72 of ftVelocityField.h because the .get() is apparently returning a value, not void:
void getMaxArrowLenth() { return maxArrowLength.get(); }
By changing that line to the below, it compiles successfully:
float getMaxArrowLenth() { return maxArrowLength.get(); }
While we're here getMaxArrowLenth() has a misspelling in Length (missing a g).
System:
oF 0.9.2
VS2015 Community
Windows 10
nVidia 970M
Would be helpful to list in readme.md that ofxGUI is a dependency.
I'm trying to compile DanceFlows, and I get the following output and errors:
Build target FlowKinect_Original
CompileC /Users/hsstudent/Library/Developer/Xcode/DerivedData/FlowKinect_Original-bqayucczmzrbysgushshqznmnmgt/Build/Intermediates/FlowKinect_Original.build/Release/FlowKinect_Original.build/Objects-normal/i386/main.o src/main.cpp normal i386 c++ com.apple.compilers.llvm.clang.1_0.compiler
cd /Users/hsstudent/Documents/OpenFrameworksv0.8.4/apps/DanceFlows/00_DF
export LANG=en_US.US-ASCII
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -x c++ -arch i386 -fmessage-length=0 -fdiagnostics-show-note-include-stack -fmacro-backtrace-limit=0 -stdlib=libstdc++ -Wno-trigraphs -fpascal-strings -O3 -Wno-missing-field-initializers -Wno-missing-prototypes -Wno-return-type -Wno-non-virtual-dtor -Wno-overloaded-virtual -Wno-exit-time-destructors -Wno-missing-braces -Wparentheses -Wswitch -Wno-unused-function -Wno-unused-label -Wno-unused-parameter -Wno-unused-variable -Wno-unused-value -Wno-empty-body -Wno-uninitialized -Wno-unknown-pragmas -Wno-shadow -Wno-four-char-constants -Wno-conversion -Wno-constant-conversion -Wno-int-conversion -Wno-bool-conversion -Wno-enum-conversion -Wno-shorten-64-to-32 -Wno-newline-eof -Wno-c++11-extensions -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -fasm-blocks -funroll-loops -fstrict-aliasing -Wdeprecated-declarations -Wno-invalid-offsetof -mmacosx-version-min=10.9 -g -mssse3 -Wno-sign-conversion -I/Users/hsstudent/Library/Developer/Xcode/DerivedData/FlowKinect_Original-bqayucczmzrbysgushshqznmnmgt/Build/Intermediates/FlowKinect_Original.build/Release/FlowKinect_Original.build/FlowKinect_Original.hmap -I/Users/hsstudent/Documents/OpenFrameworksv0.8.4/apps/DanceFlows/00_DF/bin/include -I../../../libs/openFrameworks -I../../../libs/openFrameworks/3d -I../../../libs/openFrameworks/app -I../../../libs/openFrameworks/communication -I../../../libs/openFrameworks/events -I../../../libs/openFrameworks/gl -I../../../libs/openFrameworks/graphics -I../../../libs/openFrameworks/math -I../../../libs/openFrameworks/sound -I../../../libs/openFrameworks/types -I../../../libs/openFrameworks/utils -I../../../libs/openFrameworks/video -I../../../libs/poco/include -I../../../libs/freetype/include -I../../../libs/freetype/include/freetype2 -I../../../libs/fmodex/include -I../../../libs/glew/include -I../../../libs/FreeImage/include -I../../../libs/tess2/include -I../../../libs/cairo/include/cairo -I../../../libs/rtAudio/include -I../../../libs/glfw/include -I../../../addons/ofxGui/libs -I../../../addons/ofxGui/src -I../../../addons/ofxKinect/libs -I../../../addons/ofxKinect/libs/libfreenect -I../../../addons/ofxKinect/libs/libfreenect/include -I../../../addons/ofxKinect/libs/libfreenect/platform -I../../../addons/ofxKinect/libs/libfreenect/src -I../../../addons/ofxKinect/libs/libusb-1.0 -I../../../addons/ofxKinect/libs/libusb-1.0/include -I../../../addons/ofxKinect/libs/libusb-1.0/include/libusb-1.0 -I../../../addons/ofxKinect/libs/libusb-1.0/lib -I../../../addons/ofxKinect/libs/libusb-1.0/lib/osx -I../../../addons/ofxKinect/libs/libusb-win32 -I../../../addons/ofxKinect/src -I../../../addons/ofxKinect/src/extra -I../../../addons/ofxOpenCv/libs -I../../../addons/ofxOpenCv/libs/opencv -I../../../addons/ofxOpenCv/libs/opencv/include -I../../../addons/ofxOpenCv/libs/opencv/include/opencv -I../../../addons/ofxOpenCv/libs/opencv/include/opencv2 -I../../../addons/ofxOpenCv/libs/opencv/include/opencv2/calib3d -I../../../addons/ofxOpenCv/libs/opencv/include/opencv2/contrib -I../../../addons/ofxOpenCv/libs/opencv/include/opencv2/core -I../../../addons/ofxOpenCv/libs/opencv/include/opencv2/features2d -I../../../addons/ofxOpenCv/libs/opencv/include/opencv2/flann -I../../../addons/ofxOpenCv/libs/opencv/include/opencv2/gpu -I../../../addons/ofxOpenCv/libs/opencv/include/opencv2/highgui -I../../../addons/ofxOpenCv/libs/opencv/include/opencv2/imgproc -I../../../addons/ofxOpenCv/libs/opencv/include/opencv2/legacy -I../../../addons/ofxOpenCv/libs/opencv/include/opencv2/ml -I../../../addons/ofxOpenCv/libs/opencv/include/opencv2/objdetect -I../../../addons/ofxOpenCv/libs/opencv/include/opencv2/ts -I../../../addons/ofxOpenCv/libs/opencv/include/opencv2/video -I../../../addons/ofxOpenCv/libs/opencv/lib -I../../../addons/ofxOpenCv/libs/opencv/lib/osx -I../../../addons/ofxOpenCv/src -I../../../addons/ofxFlowTools/libs -I../../../addons/ofxFlowTools/src -I../../../addons/ofxFlowTools/src/drawforces -I../../../addons/ofxFlowTools/src/filters -I../../../addons/ofxFlowTools/src/fluid -I../../../addons/ofxFlowTools/src/mask -I../../../addons/ofxFlowTools/src/opticalflow -I../../../addons/ofxFlowTools/src/particles -I../../../addons/ofxFlowTools/src/tools -I../../../addons/ofxFlowTools/src/visualisation -I../../../addons/ofxFX/libs -I../../../addons/ofxFX/src -I../../../addons/ofxFX/src/composers -I../../../addons/ofxFX/src/filters -I../../../addons/ofxFX/src/generative -I../../../addons/ofxFX/src/operations -I../../../addons/ofxMidi/libs -I../../../addons/ofxMidi/libs/pgmidi -I../../../addons/ofxMidi/libs/rtmidi -I../../../addons/ofxMidi/src -I../../../addons/ofxMidi/src/desktop -I../../../addons/ofxMidi/src/ios -Isrc -I/Users/hsstudent/Library/Developer/Xcode/DerivedData/FlowKinect_Original-bqayucczmzrbysgushshqznmnmgt/Build/Intermediates/FlowKinect_Original.build/Release/FlowKinect_Original.build/DerivedSources/i386 -I/Users/hsstudent/Library/Developer/Xcode/DerivedData/FlowKinect_Original-bqayucczmzrbysgushshqznmnmgt/Build/Intermediates/FlowKinect_Original.build/Release/FlowKinect_Original.build/DerivedSources -F/Users/hsstudent/Documents/OpenFrameworksv0.8.4/apps/DanceFlows/00_DF/bin -F/Users/hsstudent/Documents/OpenFrameworksv0.8.4/apps/DanceFlows/00_DF/../../../libs/glut/lib/osx -F/Users/qiuyi/Desktop/OF -FYO/addons/ofxSyphon/libs/Syphon/lib/osx -F/Users/hsstudent/Documents/OpenFrameworksv0.8.4/apps/DanceFlows/00_DF/ofxSyphon/libs/Syphon/lib/osx -D__MACOSX_CORE__ -lpthread -mtune=native -MMD -MT dependencies -MF /Users/hsstudent/Library/Developer/Xcode/DerivedData/FlowKinect_Original-bqayucczmzrbysgushshqznmnmgt/Build/Intermediates/FlowKinect_Original.build/Release/FlowKinect_Original.build/Objects-normal/i386/main.d --serialize-diagnostics /Users/hsstudent/Library/Developer/Xcode/DerivedData/FlowKinect_Original-bqayucczmzrbysgushshqznmnmgt/Build/Intermediates/FlowKinect_Original.build/Release/FlowKinect_Original.build/Objects-normal/i386/main.dia -c /Users/hsstudent/Documents/OpenFrameworksv0.8.4/apps/DanceFlows/00_DF/src/main.cpp -o /Users/hsstudent/Library/Developer/Xcode/DerivedData/FlowKinect_Original-bqayucczmzrbysgushshqznmnmgt/Build/Intermediates/FlowKinect_Original.build/Release/FlowKinect_Original.build/Objects-normal/i386/main.o
clang: warning: -lpthread: 'linker' input unused
In file included from /Users/hsstudent/Documents/OpenFrameworksv0.8.4/apps/DanceFlows/00_DF/src/main.cpp:2:
src/ofApp.h:46:68: error: no member named 'setVectorSize' in 'flowTools::ftVelocityField'
void setVelocityFieldArrowScale(float& _value) { velocityField.setVectorSize(_value); }
~~~~~~~~~~~~~ ^
src/ofApp.h:48:72: error: no member named 'setVectorSize' in 'flowTools::ftTemperatureField'
void setTemperatureFieldBarScale(float& _value) { temperatureField.setVectorSize(_value); }
~~~~~~~~~~~~~~~~ ^
2 errors generated.
I don't know where to start in finding out what I did wrong. Does anyone know what the issue is?
hi,
it seems like a great addon, but unfortunatly i can't make it work correctly on my laptop.
With the current master, nothing happens or show on the screen except the cam, and some vector and force field when in 8 draw modewhen pressing mousse buttons.
i tried to look a bit at what could possibly go wrong, but i didn't find much....
i tried to tweek a bit ftShader.h, and changed
quad.setMode(OF_PRIMITIVE_TRIANGLE_FAN);
with
quad.setMode(OF_PRIMITIVE_TRIANGLES);
and at some moment, i can see some particles when pressing mousse buttons.
i don't understand much when it comes to shaders, but it could be possible that my render is set to bad rendering mode that doesn't show particle correctly?
i had a kind of like problem with some bezier curves, the curve wasn't properly textured, because of a glPolygonMode uncorrectly set to gl_point instead of gl_fill....
let me know if i can help debugging this, i really would like to see that addon working as it looks great.
forgot to mention, i'm running lubuntu 14.04 on a asus core i5 with geforce850m (support opengl 4.5)
VS2012 win32
Hello @moostrik ,
The Program builds, but in console it throws this errors.
[notice ] ftDecayShader initialized:
[notice ] ftVelocityMaskShader initialized:
[notice ] ftEOGShader initialized:
[notice ] ftHSLShader initialized:
[notice ] ftContrastShader initialized:
[notice ] ftGaussianBlurShader initialized:
[notice ] ftLuminanceShader initialized:
[notice ] ftDisplayScalarShader initialized:
[ error ] ofShader: setupShaderFromSource(): GL_GEOMETRY_SHADER_EXT shader failed to compile
[ error ] ofShader: GL_GEOMETRY_SHADER_EXT shader reports:
ERROR: 0:4: 'texture2DRect' : undeclared identifier
ERROR: 0:4: 'texture2DRect' : no matching overloaded function found (using implicit conversion)
ERROR: 0:4: 'texture2DRect' : function is not known
ERROR: 0:4: 'xy' : field selection requires structure, vector, or matrix on left hand side
ERROR: 0:4: '=' : cannot convert from 'uniform highp float' to '2-component vector of highp float'
[ error ] ofShader: GL_GEOMETRY_SHADER_EXT, offending line 4 :
2 #extension GL_ARB_texture_rectangle : enable
3 #extension GL_EXT_geometry_shader4: enable
4 uniform sampler2DRect fieldTexture; uniform vec2 texResolution; uniform vec4 baseColor; uniform float vectorSize; uniform float maxArrowSize; void main(){ vec4 lineStart = gl_PositionIn[0]; vec2 uv = lineStart.xy * texResolution; vec2 line = texture2DRect(fieldTexture, uv).xy * vectorSize; if (length(line) > maxArrowSize) line = normalize(line) * maxArrowSize; vec4 lineEnd = lineStart + vec4(line, 0.0, 0.0); float alpha = 0.3 + 0.3 * (1.0 - length(line) / maxArrowSize); vec4 color = baseColor; color.w *= alpha; float arrowLength = 0.75 * length(line); vec2 nLine = normalize(line); float arrowAngleA = atan(nLine.y, nLine.x) + 0.1; float arrowAngleB = atan(nLine.y, nLine.x) - 0.1; vec4 arrowLineA = vec4(cos(arrowAngleA) ,sin(arrowAngleA), 0., 0.); vec4 arrowLineB = vec4(cos(arrowAngleB) ,sin(arrowAngleB), 0., 0.); arrowLineA = normalize(arrowLineA) * arrowLength; arrowLineB = normalize(arrowLineB) * arrowLength; vec4 arrowA = lineStart +arrowLineA; vec4 arrowB = lineStart +arrowLineB; gl_Position = gl_ModelViewProjectionMatrix * lineStart; gl_FrontColor = color; EmitVertex(); gl_Position = gl_ModelViewProjectionMatrix * lineEnd; gl_FrontColor = color; EmitVertex(); gl_Position = gl_ModelViewProjectionMatrix * arrowA; gl_FrontColor = color; EmitVertex(); gl_Position = gl_ModelViewProjectionMatrix * lineEnd; gl_FrontColor = color; EmitVertex(); gl_Position = gl_ModelViewProjectionMatrix * arrowB; gl_FrontColor = color; EmitVertex(); EndPrimitive(); }
5
[ error ] ofShader: checkProgramLinkStatus(): program failed to link
[ error ] ofShader: ofShader: program reports:
Attached geometry shader is not compiled.
[warning] ftVelocityFieldShader failed to initialize:
[notice ] ftDiffuseShader initialized:
[notice ] ftAdvectShader initialized:
[notice ] ftDivergenceShader initialized:
[notice ] ftJacobiShader initialized:
[notice ] ftSubstractGradient initialized:
[notice ] ftSmokeBuoyancyShader initialized:
[notice ] ftVorticityFirstPassShader initialized:
[notice ] ftVorticitySecondPassShader initialized:
[notice ] ftAddForceShader initialized:
[notice ] ftClampLengthShader initialized:
[notice ] ftInitPositionShader initialized:
[notice ] ftDrawParticleShader initialized:
[notice ] ftMoveParticleShader initialized:
[notice ] ftAgeLifespanMassSizeParticleShader initialized:
[notice ] ftAddForceShader initialized:
[notice ] ftDisplayScalarShader initialized:
[notice ] ftDisplayScalarShader initialized:
[ error ] ofShader: setupShaderFromSource(): GL_GEOMETRY_SHADER_EXT shader failed to compile
[ error ] ofShader: GL_GEOMETRY_SHADER_EXT shader reports:
ERROR: 0:4: 'texture2DRect' : undeclared identifier
ERROR: 0:4: 'texture2DRect' : no matching overloaded function found (using implicit conversion)
ERROR: 0:4: 'texture2DRect' : function is not known
ERROR: 0:4: 'xy' : field selection requires structure, vector, or matrix on left hand side
ERROR: 0:4: '=' : cannot convert from 'uniform highp float' to '2-component vector of highp float'
[ error ] ofShader: GL_GEOMETRY_SHADER_EXT, offending line 4 :
2 #extension GL_ARB_texture_rectangle : enable
3 #extension GL_EXT_geometry_shader4: enable
4 uniform sampler2DRect fieldTexture; uniform vec2 texResolution; uniform vec4 baseColor; uniform float vectorSize; uniform float maxArrowSize; void main(){ vec4 lineStart = gl_PositionIn[0]; vec2 uv = lineStart.xy * texResolution; vec2 line = texture2DRect(fieldTexture, uv).xy * vectorSize; if (length(line) > maxArrowSize) line = normalize(line) * maxArrowSize; vec4 lineEnd = lineStart + vec4(line, 0.0, 0.0); float alpha = 0.3 + 0.3 * (1.0 - length(line) / maxArrowSize); vec4 color = baseColor; color.w *= alpha; float arrowLength = 0.75 * length(line); vec2 nLine = normalize(line); float arrowAngleA = atan(nLine.y, nLine.x) + 0.1; float arrowAngleB = atan(nLine.y, nLine.x) - 0.1; vec4 arrowLineA = vec4(cos(arrowAngleA) ,sin(arrowAngleA), 0., 0.); vec4 arrowLineB = vec4(cos(arrowAngleB) ,sin(arrowAngleB), 0., 0.); arrowLineA = normalize(arrowLineA) * arrowLength; arrowLineB = normalize(arrowLineB) * arrowLength; vec4 arrowA = lineStart +arrowLineA; vec4 arrowB = lineStart +arrowLineB; gl_Position = gl_ModelViewProjectionMatrix * lineStart; gl_FrontColor = color; EmitVertex(); gl_Position = gl_ModelViewProjectionMatrix * lineEnd; gl_FrontColor = color; EmitVertex(); gl_Position = gl_ModelViewProjectionMatrix * arrowA; gl_FrontColor = color; EmitVertex(); gl_Position = gl_ModelViewProjectionMatrix * lineEnd; gl_FrontColor = color; EmitVertex(); gl_Position = gl_ModelViewProjectionMatrix * arrowB; gl_FrontColor = color; EmitVertex(); EndPrimitive(); }
5
[ error ] ofShader: checkProgramLinkStatus(): program failed to link
[ error ] ofShader: ofShader: program reports:
Attached geometry shader is not compiled.
[warning] ftVelocityFieldShader failed to initialize:
Getting 195 errors and 49 warnings when trying to just open the example and build it. Many are syntax errors in oftypes.h, oflog.h, concrt.h, ofparameter.h, ofpath.h, etc.
Let me know if you can repro, if not I can upload the output.
Specs:
Windows 10
nVidia 970M
VS2015 Community
oF 0.9.2
Hi, thanks for this framework. Been a great resource so far.
We've been using this for a while and having some success, but not we'd like to try to get it running on the iPad. After setting up an xcode project with the proper settings, the biggest issues seem to lie with converting to OpenGLES (3 ideally, but 2 can work too). Any insights on how to go about that?
GL_VERTEX_PROGRAM_POINT_SIZE and GL_GEOMETRY_SHADER_EXT are undefined, and I'm guessing we can't use geometry shaders at all. I'm not an expert on shaders, but I know enough to follow your code so far - just not sure what would need to be changed exactly. For example, I could just disable the debug views that use geometry shaders, since those aren't critical. Or I see in some shader wrapper classes that you once used GL_POINT_SMOOTH instead of GL_VERTEX_PROGRAM_POINT_SIZE. Is it possible to go back to that?
Also, previously I tried to invert the colors so that the fluid simulation would have a white background with a natural blend of colors. It turns out that I would have to re-derive some of the fluid equations to do that correctly, as just inverting colors doesn't yield a natural blend. Do you know of a good resource or a better hack for that?
Camera has no effect in the example on windows / linux and oF 0.9.0.
Everything seems to work properly when the camera is unplugged and modifications are made with the mouse.
hey, im seeing an issue with timeBlurShader inside ftOpticalFlow on Windows using latest OF 0.9.0 (but i also think this is happening in master too).
works fine on OSX with latest OF 0.9.0,
but on windows the timeBlurShader doesn't work.
looking into it now... but thought id post here just in case you might have some ideas on this.
cheers.
It seems like in VS2015 on Windows 10, oF 0.9.2, if I open the project, under the src folder in the VS solution, there is main.cpp, flowTools.h, and flowTools.cpp, but in the actual src folder, and in main.cpp it actually references ofApp.h and ofApp.cpp.
Not sure if it's related to the build errors I'm having but it's definitely strange.
Hello @moostrik ,
As I commented in the OF forum. at least in in this commit your addon is not drawing / calculating Fluids or Particles in Windows. Just Optical Flow mode draw is visible.
To debug this issue -> because all cacls are done in shaders, and I coudl draw all returned textures. If after opticalFlow ( that is working ok), I should go for velocityBridgeFlow, right? there is any kind of drawScalar mode for velocityBridgeFlow that I can check?
I'm compiling ok for both, core and extended, examples only in release mode.
For the extended example: When the App starts, a small particles is moving once from right to left inside of the ROI area defined. 🏄
I'm on windows10 64 bits / Nvidia 1060.
Hello @moostrik ,
I'm wondering If I can use your addon to read several areas at same time..
I can handle serveral static ftAverageFlow areas in the way you setup the system.
flows.push_back(&temporalAverageFlowItem1);
flows.push_back(&temporalAverageFlowItem2);
...
but if I want to have several dynamic areas : create and destroy them dynamically, I can not pass there just a pointer of something I'm not saving. Right? How I could do this?
Another way I'm thinking about is just setup one ( full size ), and try to read pixel by pixel the OpticalFlow restults. Any tips how to do read several small regions or by pixel of a ftOpticalFlow?
Trying to add a system to export and import the mouse drawn fields so that you can not only save the parameters but the full state of the system once you get a look you like. Started by saving the fields as an image and loading them and adding the density and velocity back to the fluidSimulation, but looking through the source, seems like there's a lot more going on with the mouse and having to applyForce() at every mouse position. Any thoughts on how this could be spliced in easiest?
Curious if I can just write the ftFbo from the image, but that seems like a preview more than anything?...or am I better off trying to just save and re-execute mouse movements?
I see a saveValue function, which seems to save every force vector in the field, maybe I can output those and then iterate through them again and apply them?
Let me know your thoughts. Thanks!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.