Tag Info

Hot answers tagged

17

You can absolutely use the GPU to render volumetric data. Since you want to evaluate a set of functions per pixel on the screen, a simple approach is to render a full-screen triangle. This is just a single triangle that covers the entire screen (actually, it covers more than the screen, since the screen isn't triangular, but the parts off-screen are ...


6

Ray tracing and other techniques are commonly done with Compute Shaders, which Direct3D has supported since the release of D3D11 and OpenGL has supported since 4.3 (and longer via the use of OpenCL and some contortions).


5

It sounds very much like you want to use a GPU compute shader, or utilize a "Shader Storage Buffer" object to help augment the pipeline to fit your needs. Mathematicians, scientists, and other people who look to the GPU for computation on things that don't exactly translate into standard graphics use this kind of thing. Although the contemporary graphics ...


2

Super Sampling Super sampling and anti-aliasing are two different things. Super sampling is just rendering a frame at a higher resolution so that you have more information . This higher-resolution image is then down-sampled. This is especially useful when objects are very thin and might have been missed when sampling on a lower resolution. Down sampling ...


2

On of the major reason your code is slow is because you load your bitmap every time you render your game. Try putting this line in an initialization function: ... Bitmap bitmap; protected void init() { bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.menu_bg); } ... protected void onDraw() { //Set Rectangle Size and Coordinates ...


1

In java you can use an RGBImageFilter and a FilteredImageSource to change the individual pixels of an image before you draw it. Image screen = //render screen to image if(timeSinseStartWarp>0){ ImageFilter effectFilter = new Warpfilter(timeSinseStart); screen = createImage(new FilteredImageSource(screen.getSource, effectFilter)); }


1

"Real-time rendering" is calculated at the instant you ask for your whatever solution to generate the images (different technologies are used to achieve this target). "Off-line" rendering is not necessarily the contrary of "real-time". The term is often used when speaking about configurators and especially web-configurators. Sometimes people also use the ...


1

Please take a look at this old answer of mine that explains the process in detail. Basically: The members on GraphicsDeviceManager are settings that are only actually applied when ApplyChanges or CreateDevice is called. Note that CreateDevice will get called for you if you are using the built-in Game class. Regarding additional questions asked in ...


1

Some ideas come to mind and their implementation will depend entirely on the engine, tools, and, finally, the work and content pipeline. Sprite animation Create the animation using tools like Photoshop and After Effects Render frame by frame into an atlas (sprite sheet) Apply the animation by code Render the card layout on top of that using the proper ...


1

It is very possible that you may be able to restructure your algorithm to work as a set of shaders, but I recall hearing a talk on the Mantle API a while ago and thought maybe that's something you could look into as an alternative to the graphics APIs mentioned (OpenGL/DirectX)... I think it lets you program graphics hardware at a lower level thus allowing ...


1

I posted recently a response to a similar question http://stackoverflow.com/questions/24231389/struct-or-class-for-matrix-4x4-object Basically valuetypes are the way to go for storing matrices, more benefits than downsides. You may also organize a matrix to be more GPU friendly by transposing the fields directly into the matrix struct (SharpDX is not doing ...


1

Unless you just made a large number of typos posting this code, your indexing is sloppy; some of the array elements aren't initialized, some are overwritten and at one point you index out of bounds of the array. That looks like your problem. m[0][0] = 2 / (right - left); m[0][1] = 0; m[0][2] = 0; ...



Only top voted, non community-wiki answers of a minimum length are eligible