As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I am learning Computer Graphics at the university and I'm trying to figure out the use of it ... and I fail.
Only games and movies stick in to my mind, I'm sure there are other uses for, let's say, graphic algorithms, openGL, 2D and 3D, 3ds Max ...
Is it useful later on ? Where do I need it ?
Thank you
Medical and scientific visualization, simulations, preservation of cultural heritage come to mind.
First of all there is of course 3D:
CAD (did you know that today all cars, planes, boats or actually anything is designed via a computer and a CAD software?)
Scientific visualization, terrain visualization (think of google-earth), scientific simulations (any kinds of simulations actually, from fluids to sounds, or deformations, molecules, and so on...), medical visualization and assistance during surgery, etc...
User interfaces (not only 3D on the screen but also new input devices need to be designed)
...
And of course 2D is part of Computer Graphics. Think of digital photography, image filter algorithms, real-time encoding and decoding of highly compressed video, digital cameras chips, etc... List is endless.
How about the 3d CAD software that engineers and architects use?
In addition to what the others have said think about simulators. Flights probably have to be simulated these days in order to avoid crashes. While it can be done without any representaton people will need to see the output in the form of some visual representation and thus you need graphics.
Even this website has graphics on it. Depending on the browser it might not be hardware accelerated but it is a graphcs context.
Even console based applications provide you with text that is represented visually and that's because human eyes are the easiest way of offering output.
Related
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I'm looking to do some programming on the GPU but don't need any sort of 3D or high level graphics capability. Essentially all I need to do is call functions that loop through thousands of iterations very quickly. I started looking into OpenCL but it seems that support for that is much, much lower that OpenGL as I can use OpenGL ES even on mobile and WebGL on web. Web isn't that big of an importance to me at this point, but is there a viable alternative that has the wide support that OpenGL has but more used for calculation? I want something that will be able to run on as many computers and devices out there.
EDIT: I'm also looking for the best support of various graphics cards from AMD, Nvidia, etc.
OpenCL is supported by both main GPU manufacturers and is by far your best bet. The other alternative is CUDA. I think you would be better off asking a question along the lines of "How do I solve this problem using OpenCL?" than simply stating that it is not suited for the work you need done, as it is very hard to make recommendations based solely on the description above.
Please also note that OpenCL supports an embedded profile, which means it has some support on mobile devices. However the iPhone does not currently support this. It was rumored that it would be coming to iOS 6 but this seems not to have happened yet.
Also see this question which explains how android and OpenCL function together.
I guess for NVIDIA cards the best model to use is CUDA. It's pretty mature by now and very well supported. You can find many guides on the main site and they're well written so you should be able to pick it up quickly imo.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 11 years ago.
I would like to develop a small cross-platform for (structured) mesh generation software (similar to Gmesh) and possibly 3D pre/post processing (like Salome).
In order to make things easier I'd like to use already made libraries, to better focus on the development of what I need.
I need
1. geometrical modelling capabilities
2. GUI
3. 3D visualization.
I have been looking around but the whole workflow results a bit blurry.
I think pyGTK and GLADE are good choices for me ( because of the community and the very open license with respect to pyQt).
The modelling part could be handled by Open Cascade ( preferably pythonOCC) but for the visulization in a pyGTK widget I don't know what to do.
I was thinking to use openGL (PyGtkGLExt) but I understood that OpenGL is too low-level.
FreeCAD (http://goo.gl/V4FCW) uses Coin3D (I could use pyvy maybe) for this reason but a software like Gmesh uses directly OpenGL.
On top of that I saw that for scientific visualization, VTK would be probably better, but I don't understand whether it is based on OpenGL or not. In my opinion OpenGL is nice because it is supported by graphic card drivers making the whole software faster.
I should be able to render geometries built by pythonOCC into a pyGTK widget but what kind of libraries would be better to use? OpenGL alone (maybe to complex to program?)
Coin3D (or similar) to speed up the use of OpenGL?
VTK alone? VTK in combination with OpenGL?
Other combination and/or libraries?
Have you experience in this kind of software?
Do you have suggestion about it? Do you know tutorials where the combined used of these libraries is explained?
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 11 years ago.
I am working as c++ developer in cfd field for last 1.5 years. Since I am from computer science background I have very poor domain knowledge in CFD. I have searched on net but didn't get the kind of material am looking for. Actually am getting mathematical research papers about cfd focusing on theory and formulas . What I want is a tutorial written in plain English targeting novice people with focus on software development. I might be asking too much , but any help is appreciable :)
Well, if you want to have a somewhat more friendly introduction (although you simply won't be able to escape math) you might start at "Fluid Flow for the Rest of Us" by Cline, Cardon and Egbert and work your way up from there. Google it and you'll find it online.
Or you could have a look at Robert Bridson's book "Fluid Simulation for Computer Graphics" which introduces the basic concepts in a more gentle way.
These are both texts dealing with fluids targeted at computer graphics, but they might provide a gentle introduction while you work your way up to CFD simulations.
I've worked with/on two C++ libraries that both come with a lot of theory, docs and tutorials: http://www.dealii.org/ and http://libmesh.sourceforge.net/. Both are adaptive refinement finite element libraries, both with a focus on (scientific) fluid simulations.
Another good start could be Fast Fluid Dynamics Simulation on the GPU, which actually lends to a very simple (but not optimal) implementation on the CPU.
It comes with shader's source that can be ported straight to the CPU, and provides an easier and more programming oriented approach than Bridson's book.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I already program in C#, Java and C++ and would like to know if you know good books (wether about OpenGL or DirectX and with any of these languages) that cover video game development and that include a discussion about shaders, special effects, sound and collision detection. I know this may seem a lot, but I searched on Amazon and O'Reilly and didn't find a book that covers all these subjects. I don't know if you have seen a book like this.
Jay Baxter of Blizzard Entertainment has posted a list of books that are recommended reading for aspiring programmers at his company. You can view his lists of recommended game programming books here.
A broad (not in depth) book that touches those topics among many others is Core Techniques and Algorithms in Game Programming. I highly recommend it.
[...] this book is exactly what I was
looking for. After reading it (and
re-reading some passages) the
difference with other books on games
is appalling: this is a course on
games programming, a tool for those
who want a formal, well laid-out
introduction, that covers all the main
topics and leaves few questions
unanswered.
What you're looking for is a MASSIVE amount of information and if there ARE any books out there that cover all of these, I'm fairly sure that they wouldn't really go into any amount of depth on each.
Both the DirectX and OpenGL websites have pretty much all information that you'll need for either graphics API. If you're not so interested in the actual plumbing work, then I'd suggest maybe taking a look at Ogre (which I believe also has a C# port).
Shader documentation: DirectX, OpenGL
Audio all depends on the the API that you end up going with: DirectX, or you can choose from many OS audio libraries out there (i.e. OpenAL).
For special effects, I'd recommend the Graphics Gems series, as well as GPU Gems.
I'm not too sure about specific collision detection references, as I usually just end up google'ing for algorithms on demand.
The Game Programming Gems series is a great source for information, but it's more tips 'n tricks and not a thorough explanation of each topic.
I have heard from others that "Essential Mathematics for Games and Interactive Applications" is a good start to building your foundation and (re)familiarizing yourself with the math aspects.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
i like to make very simple 3d/2d game for pc/mac/linux
what is the best free 3d/2d engine for this ?
i have no experience in game programming so i guess it have to be easy to learn
please in c++
thanks
While 'best' can very much depend on your situation, one I have used in the past to great success is OGRE 3D.
It's cross-platform, very nicely written (C++), and runs well. However the one thing that set it apart for me was the great community - you can always get help no matter how simple your question, and there are plenty of guides/tutorials around on their forum/wiki. The documentation is also very good.
It's well worth checking out.
Hrmm, upon reading that it almost sounds like I have a vested interest - I don't! I just really like it from past experience!
Try searching DevMaster's Game and Graphics Engines Database for 3D engines. This question has also been asked and answered MANY MANY times in their forums.
C4 Engine, irrLicht and Torque are often recommended for 3D in C++, but it really depends on your individual requirements or if you really need an engine at all.
I recommend Irrlicht. It's simple, lightweight but fast and powerful. It's not as featureful as Ogre3D, but I've found it more simple to use.
If you're looking for more of a simple API rather than a full-blown game engine, you should try SDL. That will give you a platform-independent way to render with OpenGL, handle input, do basic audio, etc. It's especially handy if you're looking for a way to do a simple 2D game project.
Panda3D is quite easy:
You can use it with C++ (or Python.)
It is well documented and offers many good samples.
It's mostly 3d oriented, so be aware although any 3d engine will involve a learning curve, Panda3D will have one of the shortest.