Live data from Hacker News

The Littlest CPU Rasterizer

ginsweater.com

11–18 of 18 posts

Re: The Littlest CPU Rasterizer

#12
post #3

cool ! shouldn't it be: U32 ind = (xx-xStart + (yy-yStart) * 16+ ( zz-zStart ) * 16 * 16) * 2; in your code, though ?

Whoops, yeah, you caught me. As I handwaved in the post, there's a little bit of implementation detail in the real code that I removed to clarify the algorithm. Fixed now, thanks.

Re: The Littlest CPU Rasterizer

#13

Fun! When I saw spherical harmonics I was confused about why spherical harmonics would come into play in a voxel universe (isn't everything flat?). Digging into it a bit I found out more about spherical harmonic lighting: http://www.research.scea.com/gdc2003/spherical-harmonic-ligh...

The geometry may be flat, but relationships between objects are still arbitrary, so light can still hit things from any angle. Try as you might, you can't escape curves. ;)

That article's a classic; definitely worth a read for anyone interested in graphics.

Re: The Littlest CPU Rasterizer

#14
post #6

i was trying to build a word cloud algorithm and then I had a question: how do you rasterize letter shapes? I looked at pyCairo but I couldn't figure out how to use it. http://cairographics.org/documentation/pycairo/3/ I asked on StackOverflow no answer http://stackoverflow.com/questions/21915335/getting-the-bitm... i found the true-type format shape files and extracted polygons from those - which i also don't know h…

I like stb_truetype myself. It's C so you'll have to bind it if you're using any other language, but it's a lot simpler than Freetype. (Less features too, but it'll take a .ttf and return a bitmap, which sounds like what you want.)

http://nothings.org/stb/stb_truetype.h

Re: The Littlest CPU Rasterizer

#15
post #7
post #6

i was trying to build a word cloud algorithm and then I had a question: how do you rasterize letter shapes? I looked at pyCairo but I couldn't figure out how to use it. http://cairographics.org/documentation/pycairo/3/ I asked on StackOverflow no answer http://stackoverflow.com/questions/21915335/getting-the-bitm... i found the true-type format shape files and extracted polygons from those - which i also don't know h…

For concave shapes like letters the best choice would probably be a scanline-based rasterization algorithm. Sort all polygon edges from top to bottom and walk through that list line-by-line, keeping track of all active edges for each scanline. For those you can then find all intersections and fill the ranges in-between. By using an even-odd rule you can make sure that concave polygons and polygons with holes are fill…

I wrote one of those once! It was a nightmare morass of one-pixel errors. Maybe there was some clever simplification I missed that would have made it all easy, but these days I use the libraries. :P

I know that's how stb_truetype's renderer works, incidentally. Don't know if Freetype is the same, but I'd be mildly surprised to find it wasn't.

Re: The Littlest CPU Rasterizer

#16
post #6

i was trying to build a word cloud algorithm and then I had a question: how do you rasterize letter shapes? I looked at pyCairo but I couldn't figure out how to use it. http://cairographics.org/documentation/pycairo/3/ I asked on StackOverflow no answer http://stackoverflow.com/questions/21915335/getting-the-bitm... i found the true-type format shape files and extracted polygons from those - which i also don't know h…

I like stb_truetype myself. It's C so you'll have to bind it if you're using any other language, but it's a lot simpler than Freetype. (Less features too, but it'll take a .ttf and return a bitmap, which sounds like what you want.) http://nothings.org/stb/stb_truetype.h

It's always great to see things that people would consider nontrivial programming tasks being done with a much smaller amount of code than they would expect from looking at the more "mainstream" libraries that do it. Public domain is a big bonus too.

In comparison, Freetype is absolutely monsterous; it is a few times faster according to some benchmarks I've found, but a few orders of magnitude bigger too. Sometimes you don't need the fastest, you just want something simple that works.

Re: The Littlest CPU Rasterizer

#17
post #9
post #6

i was trying to build a word cloud algorithm and then I had a question: how do you rasterize letter shapes? I looked at pyCairo but I couldn't figure out how to use it. http://cairographics.org/documentation/pycairo/3/ I asked on StackOverflow no answer http://stackoverflow.com/questions/21915335/getting-the-bitm... i found the true-type format shape files and extracted polygons from those - which i also don't know h…

If you have access to a GPU (or can evaluate quadratic functions of barycentric coordinates) Loop and Blinn's 2005 algorithm is brilliant http://research.microsoft.com/en-us/um/people/cloop/loopblin...

That technique is patented.
Post reply on HN