2D rasterizer resources and book

Started by
6 comments, last by shinypixel 9 years, 11 months ago

Hi All,

are there any books available that discusses theories and implementation for a 2D rasterizer? everything i found online is for 3D rasterization (if not dx or OGL).

the company i am connected now wants to build our own rasterizer for our own firmware project that can draw raster images and vector graphics including fonts,

I am looking for books (old and new) or some resources that covers this.

Thanks,

Advertisement

Any particular reason why your company wants to reinvent the wheel?

edit: And I hope this doesn't sound insulting. It's just that this kind of problem has been solved countless times before, and there are many (free for commercial use) ways you could approach this without wasting so much time.

Rasterizing is always 2D -- Software Rendering books will talk about the 3D pipeline a lot, but the whole point of the 3D pipeline is to transform 3D things into 2D things so that you can rasterize them.

Computer Graphics: Principles and Practice is the classic textbook. For your purposes, you probably want the Second Edition in C. The original Second Edition had code samples in Pascal, and the newer Third Edition focuses on modern rendering hardware. IIRC, it spends a good amount of time talking about glyph rendering (text and symbols using vector descriptions), shapes, and bitmaps. It also goes on to discuss 3D matters like transformations and lighting.

throw table_exception("(? ???)? ? ???");

WHAT do you want to rasterize?

IE, A single point, a line, some 2D polyhedra, perhaps some font?

Each of these will have a different implementation. I suggest you start with how to rasterize a line. Plenty of online tutorials available for it.

Read up on fill types and whatnot: http://www.angusj.com/delphi/clipper/documentation/Docs/Units/ClipperLib/Types/PolyFillType.htm

http://ezekiel.vancouver.wsu.edu/~cs442/lectures/raster/polyfill/poly.pdf

Any particular reason why your company wants to reinvent the wheel?

edit: And I hope this doesn't sound insulting. It's just that this kind of problem has been solved countless times before, and there are many (free for commercial use) ways you could approach this without wasting so much time.

HI I cant give any more information,

lets just say that the company has a hardware product that previously has the rendered items passed to it thru the host or network in advance and right now we want to support actual rasterization on the hardware itself. more likely similar to how printers work.

WHAT do you want to rasterize?

IE, A single point, a line, some 2D polyhedra, perhaps some font?

Each of these will have a different implementation. I suggest you start with how to rasterize a line. Plenty of online tutorials available for it.

Read up on fill types and whatnot: http://www.angusj.com/delphi/clipper/documentation/Docs/Units/ClipperLib/Types/PolyFillType.htm

http://ezekiel.vancouver.wsu.edu/~cs442/lectures/raster/polyfill/poly.pdf

as much as possible rasterized everything, like draw circle, boxes, FILL things, stroke, colors, raster images, etc.

any information will help.

its like building our own Canvas drawing implementation for our own device.

@uglybdavis

Thank you for this tip, we have done our part in researching smaller things and things in detail, but we are looking if there are any books or resource that can help us, at least a book has more or most of the things we are looking in it :)

Rasterizing is always 2D -- Software Rendering books will talk about the 3D pipeline a lot, but the whole point of the 3D pipeline is to transform 3D things into 2D things so that you can rasterize them.

Computer Graphics: Principles and Practice is the classic textbook. For your purposes, you probably want the Second Edition in C. The original Second Edition had code samples in Pascal, and the newer Third Edition focuses on modern rendering hardware. IIRC, it spends a good amount of time talking about glyph rendering (text and symbols using vector descriptions), shapes, and bitmaps. It also goes on to discuss 3D matters like transformations and lighting.

oh thank you for this book, this is exactly what i am looking for. (I think i have this back when i was still freshman in college).

+1 to you mate!

I'm attempting to say this in a nutshell: It's useful to learn fundamentals of graphics, though I wouldn't suggest doing it more than just academic or "possibly" emulator design purposes, or even making graphics hardware drivers at the very low level. Like everything, the more you know, the more you can understand and fix problems, especially in graphics programming. For 2d rasterizers, I recommend Tricks of the Windows Game Programming Gurus: 2nd Edition by Andre' LaMothe, and his Tricks of the 3D Game Programming Gurus: Advanced 3D Graphics and Rasterization. It's a little outdated using DirectX technologies, and some can't stand his sense of humor, and plenty of seasonal naysayers, but the fundamentals are all the same and he's easy to understand. It also doesn't matter using the latest and greatest when you're studying fundamentals. Among other game programming veterans, the creator of Call of Duty learned from his books. He designed classic consoles for academic learning which uses software rasterization probably, and you put together the thing. Point is, he knows his stuff. It's been very educational for me as well, and transitioning to modern APIs are easy to understand at the end. But it's just that, academic. Software rasterizers in today's world are not recommended for commercial games, and hardware far out-beats it in performance and algorithms.

This topic is closed to new replies.

Advertisement