Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon. Entire thread

Software Rendering and OpenGL Textures

Name: Anonymous 2011-11-12 8:54

I have been told that the bus between main and video memory is too slow to allow for constant updates to large textures. This seems like it would rule out, say, rendering a screen of a game in software then dumping it to the video card via OpenGL for postprocessing.

However, it is my reasoning that an emulator developer should want to do exactly this. An array of pixels would be easiest for an emulator to work on. Most emulators offer a DirectX or OpenGL mode for better sync, which makes me wonder what's going on underneath.

I'll get to it, then: Would it be feasible for a 320x240 game to be rendered in software, with the screen updates pushed to video  memory on VBLANK for postprocessing (upscale, scanlines, etc)?

Name: Anonymous 2011-11-12 10:22

>>7
Why the FUCK wouldn't you just USE THE DAMN CPU TO HASTEN RENDERING
Did you mean: USE THE DAMN GPU?

You're making the assumption that I'm trying to write the next Unreal Engine with a software renderer. Don't worry, I'm not an idiot. I wouldn't use software rendering if I was programming a 3D game or a graphically intensive 2D game. In my scenario, I'm interested in programming a very simple roguelike, with about the graphical sophistication of a simple Genesis or SNES game. 1 background layer (that never has to be scrolled and rarely needs to be updated), a sprite layer (with little animation except for idle animation), and maybe a few simple particle effects for, say, casting a fire spell.

A software renderer would appeal to me here because it would be very easy to port to different platforms. If it's possible, I could use the platform's native software rendering (like GDI on Windows) or a hardware accelerated alternative, without needing to update the actual "rendering code" (a few dozen blits).

As another example, I'm pretty sure that SSF (the only good Sega Saturn emulator) uses software rendering for its graphics pipeline (I recall the author saying it was easier to do in software, due to the Saturn's use of quadrilateral primitives), yet still outputting with DirectX and VSYNC. Thinking about this, I'm positive that it's possible, I just don't know how I'd go about doing it.

Newer Posts
Don't change these.
Name: Email:
Entire Thread Thread List