Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
Improve this question
For Windows there are many tools for extracting 3D data from programmes by intercepting the OpenGL data (e.g. 3D Ripper DX, glintercept, Ogle, OpenGLXtractor, HijackGL).
Are there any similar tools for Linux? If not, would it be possible to make one? (and if would anyone be interested in starting an open source project with me?)
I will actually automate the process, but that is another story.
First a word of warning: OpenGL is not a scene graph. There is no such thing as a "scene" or "objects" (in the physical kind of thing sense) in OpenGL. All what OpenGL does is drawing points, lines and triangles to a scene, one at a time and independent from each other. So intercepting OpenGL drawing calls to extract objects by nature is unreliable. That being said most programs using OpenGL do it in a way that make it actually quite feasible to extract the rendered geometry and interpret it as objects.
Another member of my hackerspace wrote a tool for intercepting OpenGL calls to extract meshes (the original use was so that we could 3D print game assets and similar on our RepRap). The sources for this tool can be found here https://github.com/mazzoo/ogldump
However ogldump is very limited. It doesn't support vertex buffer objects (VBO), interleaved vertex arrays can mess things up and things like shaders and generic vertex attributes are completely unheared of. Feel free to patch that in, if you like.
Related
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 2 years ago.
Improve this question
I'm looking for a library similar to D3 or matplotlib but meant for 3-dimensional objects. My ultimate goal is to visualize an animated voxel object, along with interactions like slicing, boundary visualization, and a timeline.
There are various graphical rendering libraries this can be made with, but I'm wondering if there is already a library for visualization and manipulation of 3D voxel-based objects, such as images in medical science. I've aware of graphical rendering software like OpenGL, but to avoid reinventing the wheel, I'm hoping to find more feature-rich software.
Most modern engines (Godot, Unreal, Unity, Lumberyard) are free to use and have built in voxelization algorithms. They are not as configurable as doing it on OpenGL but it might be sufficient for your use case.
You can use "Three.js". The library is very good for all sorts of 3d modeling in the web-environment. Look here: https://threejsfundamentals.org/threejs/lessons/threejs-voxel-geometry.html
The site has much content specifically for voxel objects. I don´t know how high the model-resolution is supposed to be but you can use the library for sure in medical science.
The best way to have Voxel models loaded into a Three.js scene is to export .obj files. There is currently no reliable library for loading .vox files, but exporting .obj files is very easy.
Three.js is a very dedicated library and gets extended very well and i plan to start the first projects with it myself.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
Improve this question
The output of my program will be some 2D drawings, with primitives like drawCircle, fillRect, and so on. Originally, I planned to draw it with Matlab or Java, but then I would have to provide options for zooming, printing, editing and so on by myself.
So I think it would be a good idea to just output the graphics into a standard vector graphics format and then open it with an existing viewer.
Which format could be a good choice? I will need 2D drawings, maybe I'd like to extend to 3D later on.
Two easy options for 2D vector graphics are PostScript and SVG.
PostScript is probably easier to output and you can have an external header that implements your primitives on top of PostScript primitives, which will give you flexibility. But you'll need to use a PostScript viewer or to convert the output to PDF (some PDF viewers can display PostScript).
SVG is a little more complicated to output because of its syntax, but still not hard. The main advantage of SVG is that all major browsers can display SVG. Another advantage of SVG is that you can have transparency, which PostScript does not support. On the other hand, you'll have to map your primitives to SVG primitives; there is no programmability in SVG.
PDF does support transparency but is not easy to generate by hand; you'll have to use a library.
In Windows, I still use old Windows (Enhanced) Metafile .emf.
It is easy, supported in Delphi and Visual Studio, but I don't know if it's supported in Linux world.
Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 11 years ago.
Improve this question
I don't need the dinosaur, just the buildings with details on the buildings, but I would like the 3D graphics to take on this sort of style. Real-time.
Part of reproducing this effect in a real-time 3D environment could be handled by the designers, texturing the various meshes in combination with fairly matte shading.
However, there is also a whole field of Computer Graphics research focusing on Non-Photorealistic Rendering (or NPR). There actually have been a lot of published papers on real-time watercolor rendering (to various degrees of success), often using shaders as suggested by xOr.
A good starting point in my opinion would be the work of Adrien Bousseau. An example that comes to mind is his paper "Interactive watercolor rendering with temporal coherence and abstraction (PDF warning)". Another one would be "Watercolor Illustrations from CAD Data (PDF warning)" by Luft et al.
Now, don't get me wrong, I'm not saying these papers are to be implemented and be done with it. Perhaps they are too science-y for you or simply to complex for whatever system you're trying to create. However, read through them and read through some of the papers they reference to get an idea of the various approaches out there. If nothing else, you will at least have some terms to Google and see if you can find something that suits you.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 6 years ago.
Improve this question
Need to find if there is a open source project for audio signal processing, just as we have openCV for image processing.
Thanks
In my course for the more technical part, we were introduced to signal processing, we had to use Octave with the audio package and gnu plot for plotting.
For the fun part of the course used MaxMSP/Jitter which is a commercial project,
but there's always PureData which is opensource and the Jitter equivalent would be PD Gem, but just for audio signal processing you should be fine with PureData.
In short, if you're into the number crunching bit, Octave should be fine.
We also did the image processing in Octave too, it's two dimensions as opposed to one(sound), but it's still signal processing. You can apply a high-pass or a low pass filter to an image too, you can try an echo/delay on images for fun if you like.
Pure Data is a bit different, since you patch cords instead of typing lots of code, but it's pretty fun and one of the advantages is that you can make changes live, while your patch/program is running which makes it great for fast prototyping.
Straying a bit from audio signal processing, if you're into generative music, you should have a look at some opensource projects like ChucK, SuperCollider, ixi
or fluxus...some do cool stuff with Haskell.
Update
On the c++ side you can also check out Dr. Mick Grierson's Maximilian library which also includes a nice little addon for OpenFrameworks
It's also worth checking out Sonic Visualiser and Vamp Plugins (a lot of nice goodies there)
HTH
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
Improve this question
I'm looking for some material on how homogeneous coordinates, perspectives, and projections work in 3d graphics on a basic level. An approach using programming would be stellar. I've been searching around and my searches are convoluted with OpenGL, Direct3d, and material more concerned with the mathematical proofs than the actual application. Does anyone know of a place where I could find this information (online access preferred)?
You probably have to look for pre-OpenGL textbooks like Foley and van Dam's Computer Graphics: Principles and Practice in C (2nd Edition).
In particular, Ch 11 Representing Curves and Surfaces and Ch 15 Visible-Surface Determination would be relevant, but earlier material on how to draw lines and shapes would also be useful if you are truly doing everything from scratch. Something as simple as drawing a line is non-trivial if you think about it.
I've found a lot of great 3D graphics programming information on Charles Petzold's book blog. The 3D code is mostly in XAML, so it is simple enough to understands the basics without too much overhead.
I'm reading the following two books together right now to learn WPF's 3D graphics model and the underlying math at the same time. Both books are outstanding in my opinion, though it may not be what you're looking for:
3D Math Primer for Graphics and Game Development
3D Programming for Windows (this is a WPF 3d book, though the title doesn't reflect it)
A good start would be the OpenGL Programming Guide (Red Book). You can read it online (albeit an older edition) and is full of examples (actual working code).