books

You are currently browsing articles tagged books.

Here’s a short guide on creating decent ebooks from scans using Adobe Acrobat. This will not be of interest to 98% of you, but I want to record it somewhere for those of you who may do this in the future. It is written by Iliyan Georgiev, who made the recent PoDIS ebook. Comments are welcome, as usual.

The one piece of software you’ll need that can’t be downloaded for free is Adobe Acrobat, though even this application has a 30-day free trial.

1. Scan the pages of the book using a scanner (a digital camera is a good alternative).

2. Crop the scanned images (and split the pages, if you scanned two pages at once). It’s better for an ebook to have smaller page margins. Also, cropping removes black areas and other artifacts resulting from scanning. An excellent (JPEG-only) batch cropping tool for Windows is JPEGCrops. It has some disadvantages, however, so in practice it’s best to use JPEGCrops to estimate approximate cropping parameters (width, height, x-offset, y-offset) and XnView‘s batch processing mode for the actual cropping. Both applications are free and have portable versions.

3. Assemble all images into a PDF file. Adobe Acrobat has an option to combine multiple files into a single PDF. Use the highest quality settings for the creation.

4. (OPTIONAL) Rearrange/merge/delete pages. Acrobat has excellent tools to achieve these. This can be useful for books that are published in two volumes or for extending the book with additional information, such as errata listings, images, high quality cover pages, etc.

5. Manage blank pages. It might be tempting to delete blank pages inside the book. Such pages are always intentionally left blank by the publishers, as they are important for the printing order. This is particularly important for the first few pages, as well as for the chapters. Many books are created in such a way that all chapters start on an even/odd page, and the large majority have the inner pages typeset for being printed on a specific side (left/right). If you want to optimize the page count anyway, keep in mind how the book would appear when printed out (also using “2 pages per sheet” printing).

6. Number the pages. This is an often-overlooked, but very useful, option. Apart from the default page numbering, the PDF format supports logical page numbering. This can be used to synchronize the PDF page numbers with the actual book page numbers. This is very easy to do in Acrobat and should always be done. To do this, select the necessary pages, right click on them and choose “Number Pages…”.

7. Run OCR (optical character recognition) on the PDF. This is an extremely easy way to make your scanned pages searchable and the text copy/paste-able. Acrobat has a good and easy to use built-in OCR tool. You will find it in the Document menu (Tools pane in Acrobat X). Be sure to disable image resampling, as by default OCR will resample the images, which can easily increase the file size by a huge amount! Keep in mind that OCR is a compute-intensive process and can easily take a couple of hours for a larger book.

8. Optimize document. Acrobat has an option to optimize scanned documents. This runs some image-processing algorithms on the scanned images and compresses them aggressively when it detects text. This is a vital step to keep the size of the document low. It can reduce the file size by a factor of 20! It will also make the antialiasing to look better when pages are minified, if the resolution of the original scans is high enough. This process is also compute-intensive and can easily take an hour for a larger book.

9. (OPTIONAL) Reduce the file size further by using Acrobat’s other optimization options, from which the image downsampling is the most important.

At this point the most important steps are done and you can end here and go to sleep if you see the sunrise through the window. Go on if it’s only 4 AM.

10. (OPTIONAL) Setting the initial view. Open the document properties on the Initial View tab. Here, you can set the initial page, zoom level and which panes (e.g. the bookmarks pane, see below) should be active when the document is opened.

11. (OPTIONAL) Create a PDF table of contents (TOC). The PDF format has a useful (hierarchical) bookmarking feature with a dedicated Bookmarks pane which exists also in Adobe Reader. This feature can be used to reconstruct the book’s TOC for easy document navigation. One simple way to achieve this is the following:
11.a Go to the book’s Contents page, select the chapter title’s text and hit CTRL+B (or right click and choose to add a bookmark from the context menu). Repeat this for each chapter.
11.b Structure the created bookmarks. Rearrange the bookmarks to follow the order and structure of the book’s TOC.
11.c Link the bookmarks to pages. To do this, go over all pages of the book sequentially and every time a new chapter starts, right click on the corresponding bookmark and set the destination to the current page.

12. (OPTIONAL) Create hyperlinks inside the document. The PDF format also supports hyperlinks which can perform actions (e.g. jump to a page or a web site) when clicked. Links can be either rectangles (drawn with a corresponding tool) or text. To create text links, select the text, right click on it and choose to crate a link. There are options to set the link’s appearance and behavior.

You’re done! You have the perfect ebook and you’re late for work!

Tags: , , ,

Thanks, Iliyan!

In my post about PoDIS now being free, I asked for a volunteer to reformat the two PDFs into a nicer single file. Iliyan Georgiev, a PhD student at the University of Saarland, stepped up and took over. After a few iterations, with Andrew and me providing feedback, he’s made an excellent new version of “Principles of Digital Image Synthesis”. Download this new version from here. If that doesn’t work for you (see Comments), download load it directly from here (right-click and “Save link as…”).

This new version is much superior to the one on Google Books. It’s a single, searchable file (the Google Books version is just a scan without any OCR), it has a hyperlinked table of contents (actually, two of them), and has all errata folded into the text.

Along the way I learned a new trick from Iliyan: you can put PDFs (or any file type at all) into your Google Docs area and make them entirely public, which is how this version of the book is distributed. This is good news for all researchers: you can now host your publications in your own account. No hassling with the I.T. guys to get an account, no fuss if you move to another institution. Now no researcher needs to be held back by “it’s not company policy to give public web space” or other bureaucracy. Having a web site is nicer, but hosting in this way is free and simple. You can host up to a gigabyte for free.

Tags:

I asked Andrew Glassner to outline the process he went through to free up his book from his publisher and put it on Google Books. Here’s his reply. I hope this information will encourage anyone else who has authored a book that’s now out-of-print to spend a bit of time and effort to get it out to us all.


If you plan to release your book through Google Books, the most important thing is that you own and control the copyright. Most book publishing contracts state that when the book goes “out of print,” the rights revert to the author. This is usually not automatic: you have to ask the publisher for the rights, and they have to explicitly return them to you. I usually ask for a real, paper letter with a real, human signature on it that states the rights have been returned to me (I don’t know if an email version would carry the same official weight). This is a good time to ask them for any other physical or electronic documents they have for your book, from illustrations to PDFs and so on. They’re usually under no obligation to give you these, but often they’ll give you what they have.

You’ll also need control of at least some “Territorial Rights,” which are discussed below. It’s probably easiest to get the publisher to revert the copyright and territorial rights at the same time.

Note that it’s usually up to the publisher to determine if a book is “out of print” or not. Even if it’s many years old, and they’re not putting ink on paper any more, they may still formally consider the book to be in print. I suggest contacting your publisher and first inquiring if it’s out of print. If they say it isn’t, but you think it should be, ask them why. They might just not have gotten around to giving it that status. Be polite and professional and work with your publisher to establish the status of the book as clearly as possible. When it is out of print, ask to have copyright reverted back to you. If the publisher wants to retain some rights, offer an agreement whereby they revert the rights to you, but you then assign some rights back to them. For example, you might grant them non-exclusive electronic rights, so they can provide the book on their website.

Now that you own the copyright, create an account at the Google books partner program. If you already have a Google account (say with Gmail) you may be able to simply use that; I chose to create a new account. I don’t recall if Google asks you for payment information at this point or not. If you end up charging money for any of your books, Google has to report that income to the IRS (if you’re from outside the US, I don’t know how this works). Although I was planning to release my book for free, I set up my partnership through my one-man LLC. I don’t recall if I had to give them any kind of tax information (e.g., a Federal Taxpayer ID, which is the business equivalent of a Social Security Number) at this point or not.

Once your account is created, choose “Books”. Go to “Add Books” and enter your ISBN. Often, this is the bar code printed on the book. Another source is Amazon, which usually lists the ISBN on the book’s page. Some ISBNs are 10 digits, some are 13. Try all the versions you can find until you get one that Google recognizes as your book.

Click the question mark next to Territorial Rights, look over the options, and enter the rights that you control. Note that the publisher must explicitly relinquish those rights when they return the copyright to you. I don’t know the mechanics of this step, but Google must be checking with someone, somewhere to confirm that you own the rights. When I initially listed my book, I chose “all” for this field, and a few days later Google sent me a nice email stating I didn’t own these rights. I contacted my publisher and explained I was releasing the book through Google Books and needed to control the Territorial Rights (in addition to the copyright they’d already returned to me). They were very nice about it, and a few days later let me know it was done. I don’t know what they did, but it worked.

Google will now ask if you have a PDF or physical book you can send them. I said I did not. They then said that they would let me know if and when they scanned the book in the future. They seem to say this even if they’ve already scanned the entire book. My understanding is that if they’ve scanned any of it, they’ve scanned all of it, even if they’re only displaying a few pages. So I figured that if I gave them some time, their database of scanned-in books would catch up with this request to scan in the book, and the full PDF would appear. That indeed happened about a week later.

At that point your book’s status will go to “Live”. At the far left of your book’s listing (just to the left of the ISBN) there’s a little pencil icon. Click on that. You can now control how much of the book is shown to viewers by choosing a level from the “Book Browsable” drop-down. If you choose 100%, then they will give you the chance to apply one of several different Creative Commons licenses. There’s a nice summary of them right there on the page. I chose “Attribution-Noncommercial,” so that I get credit for my work, nobody can re-sell it for profit, but other people can build upon it.

Let Google digest and process these changes.  They say it can take up to a few days.  Then your book should be ready to share with the world!

Tags: ,

Andrew Glassner released his two-volume book “Principles of Digital Image Synthesis” to be free for download from Google Books. This book is pretty amazing in its scope and depth. Published in 1995 by Morgan-Kaufmann Press, it provides an education in almost all the key scientific and mathematical concepts used in rendering. The human vision system and color, display systems (pre-LCD, though), signal processing, sampling and reconstruction, Monte Carlo integration, energy transport, BRDFs, and much more, in 1600 pages. I turned to it for some bits of theory for our first edition. Despite its age, it is a worthwhile volume, as the underlying science and math are still valid.

Update: get a nicer version of the PDF version of the book from Iliyan’s site, or from here. Read more about it here.

Unfortunately, Google Books doesn’t quite list the book correctly and makes it hard to find both volumes when searching. So, here are the direct links:

Just hit the PDF download link in the upper right corner of each page, prove you’re not a computer, and you’ll then have each volume. You’ll want to rename the PDFs, as Google Books calls each volume the same name, Principles_of_digital_image_synthesis.pdf. Volume 1′s PDF is 12.0 MB, Volume 2′s is 17.8 MB.

Finally, to get the errata for the book, go to the author’s page about the book.

Special bonus project: I just asked Andrew Glassner if it would be OK for someone with Acrobat or other editor to put both PDFs into a single PDF, and to fold in the errata. He said that would be great, and that he could provide a bit more new errata which is not on his webpage yet. Let me know if you’re interested in doing a good deed for the graphics community and I’ll coordinate any efforts. Update: looks like we’ve got a volunteer, and so I’m hoping a new PDF version will be available in a few days.

Tags:

I’ve learnt of two new books in the past few weeks, worth mentioning as books to check out at SIGGRAPH (or using Amazon’s “Look Inside”, of course):

iPhone 3D Programming: Developing Graphical Applications with OpenGL ES, by Philip Rideout, O’Reilly Press. A better title might have been “Programming OpenGL ES on the iPhone”, as it focuses on OpenGL ES more than on the iPhone per se. Which is fine; there are already lots of iPhone programming books, and almost none that are focused more on OpenGL ES itself (the only other OpenGL ES 2.0 book I know of is this one). The book is C++ oriented, with some Objective C as needed for glue. From my brief skim, this looks like a well-illustrated, readable guide that hits many different effects: reflection maps, skinning, antialiasing, etc. That said, I haven’t yet had the opportunity to program on any mobile devices, so can’t give an expert review. When I do give it a try, this looks like the book I’ll read first.

Update: A draft of this book is free on the web, see it here. It looks to be essentially the same as the published work (but with some hand-drawn figures), and is nicer in some ways, as the pages allow color images (always good for a graphics book).

Light & Skin Interactions: Simulations for Computer Graphics Applications, by Gladimir V. G. Baranoski and Aravind Krishnaswamy, Morgan-Kaufmann Press. This one’s out of my league as a casual skim. Paging through and seeing “the eumelanin absorption coefficient is given by…” and “Scattering in either the stratum corneum or epidermis…” shows me how little I know of the world in general. Anyway, interesting to see a whole book about this critical type of material. Searching through it, there’s minimal coverage of, for example, d’Eon and Luebke’s work, so I can’t say it has much direct application to interactive computer graphics at this point.

That’s all for the real books…

The half a book (at best): Game GPU Graphics Gems: Real-Time Rendering The Redux (aka GGGG:RTRTR), by anyone who wants to edit it. When I “edited” the quasi-book Another Introduction to Ray Tracing a few months ago, I thought back then that I’d start another book for SIGGRAPH. Like the first stunning collection, this was an hour of work gathering Wikipedia articles (hardest part was choosing a cover). There are plenty more articles to gather about interactive rendering, and you’re most welcome to add any good ones you find to this book, make your own, etc. – it’s a wiki page, after all. More seriously, I like having a single, tight page of links to Wikipedia articles about interactive rendering, vs. wandering around and haphazardly seeing what’s there.

Tags: , , , , ,

I had the chance to spend some quality time with Preisz & Garney’s recent book “Video Game Optimization“ a few weeks back, as I was trapped in a 14 hour plane flight. I hardly spent all that time with it, though I probably should have spent more. Instead, “Shutter Island” and “It’s Complicated” (with bad audio) are four hours out of my life I’ll never get back.

This book goes from soup to nuts on the topic: types of optimization, how to set and achieve goals, discussion of specific tools (VTune, PIX, PerfHUD, etc.), where bottlenecks can occur and how to test for them, and in-depth coverage of CPU and GPU issues. Graphics and engine performance are the focus, including multicore and networking optimization, plus a chapter on consoles and another on managed languages. Some of the information is in the “obvious if you’ve done it before” category, but critical knowledge if you haven’t, e.g., the first thing to do when optimizing is to create some good benchmark tests and lay down the baselines.

There are many specific tips, such as turning on the DirectX Debug runtime and seeing if any bugs are found. Even if your application appears to run fine with problems flagged, the fact that they’re being flagged is a sign of lost performance (the API has to recover from your problem) or possible bugs. I hadn’t really considered that aspect (“code works even with the warnings, why fix it?”), so plan to go back to work with renewed vigor in eliminating these when seen.

I also liked reading about how various optimizing compilers work nowadays. The main takeaway for me was to not worry about little syntactic tricks any more, most modern optimizers are good enough to make the code quite fast.

There’s very little in this book with which I can find fault. I tested a few terms against the index. About the only lack I found was for the “small batch problem“,  where it pays to merge small static meshes into a single large mesh when possible. This topic does turn out to be covered (Chapter 8), but the index has nothing under “batch”, “batching”, “small batch”, etc. There is also no index entry for “mesh”. So the index, while present (and 12 pages long), does have at least one hole I could detect. There are other little index mismatches, like “NVIDIA PerfHUD Tool” and “NvPerfHud Tool” being separate entries, with different pages listed. Typo-wise, I found one small error on page 123, first line should say “stack” instead of “heap”, I believe.

Executive summary: it’s a worthwhile book for just about anyone interested in optimization. These guys are veteran experts in this field, and the book gives specific advice and practical tips in many areas. A huge range of topics are covered, the authors like to run various experiments and show where problems can occur (sometimes the cases are a bit pathological, but still interesting), and there are lots of bits of information to mull over. Long and short, recommended if you want to know about this subject.

To learn more: first, look inside the book on Amazon. We mentioned here before Eric Preisz’s worthwhile article on videogame optimization on Gamasutra. A very early outline of the book appears on vertexbuffer.com. For me, it’s great to see that this is a passion for the first author – that comes through loud and clear in this book. I’ve added it to our recommended books section.

One little update: Carmack’s inverse sqrt trick, mentioned in the book on page 155, is dated for the PC. According to Ian Ameline, “It has been obsolete since the Pentium 3 came out with SSE. The rsqrtss/rsqrtps instructions are faster still and have better and more predictable accuracy. Rsqrtss + one iteration of Newton/Raphson gives 22 (of 23) bits of accuracy, guaranteed.”

Tags: , ,

A few days before the official release date of July 1, the book GPU Pro is out. Think “ShaderX, but now with color”. The example programs and source code are free to download. As mentioned before, more about it at Wolfgang Engel’s book blog.

Tags:

Quite the backlog, so let’s whip through some topics:

  • GDC: ancient news, I know, but here is a rundown from Vincent Scheib and a summary of trends from Mark DeLoura.
  • I like when people revisit various languages and see how fast they now are on newer hardware and more efficient implementations. Case in point: Quake 2 runs in a browser using javascript and WebGL.
  • Morgan McGuire pointed out this worthwhile article on stereoscopic graphics programming. Quick bits: frame tearing is very noticeable since it is visible to only one eye, vsync is important which may force lower-res rendering, making antialiasing all that much more important. UI elements on top look terribly 2D, and aim-point UI elements need to be given 3D depths. For their game MotorStorm, going 3D meant a lot more people liked using the first-person view, and this view with stereo helped perception of depth, obstacles, etc. There are also some intriguing ideas about using a single 2D image and reprojection using the depth buffer to get the second image (it mostly works…).
  • I happened to notice ShaderX 7 is now available on the Kindle. Looking further, quite a few other recent graphics books are. What’s odd is the differential in prices varies considerably: a Kindle ShaderX 7 is only $3.78 cheaper, while Fundamentals of Computer Graphics is $20 less.
  • Speaking of ShaderX, its successor GPU Pro is not out yet, but Wolfgang started a blog about it (really, just the Table of Contents), in addition to his other blog. The real news: you can use Amazon’s Look Inside feature to view the contents of the book right now!
  • Here are way too many multithreading resources.
  • In case you somehow missed it, you must see Pixels.

Tags: , , ,

Shortly after publication of the first volume, Eric Lengyel is now calling for chapters for the second volume of this series, due to ship at GDC 2011.  Details can be found at the book website.  The first book turned out pretty good, so this might be a good one to contribute to.

Tags: ,

I’ll get back to actual informational posts realsoonnow when I have some time, but I had to put this up immediately.

Amazon sent this one on to me, a book recommendation entitled Polygon Mesh: Unstructured Grid, 3D Computer Graphics, Solid Modeling, Convex Polygon, Rendering, Vertices, Computational Geometry. I am a bit sad there’s no cover image nor “Look Inside!” feature; it’s these little touches that no doubt would have convinced me to lay out $47 for such a fine-sounding volume, even though it’s only 88 pages long. The book Rasterisation: Vector Graphics, Raster Graphics, Pixel, Rendering, 3D Computer Graphics, Persistence of Vision, Ray Tracing by the same editor has a nice cover (though no “Look Inside!”), but at $62 is just a dollar too much for me.

The first of three editors for both books, Lambert M. Surhone, has 18,247 books that he’s worked on personally. Miriam T. Timpledon and Susan F. Marseken are also pretty productive, with 17,697 titles each. If they would only take a chance to break out and edit their own books, they could overtake Lambert in no time, I’m sure.

Welcome to Betascript Publishing. The idea is to grab (possibly) related Wikipedia pages, print them out, and put them in a book. More about this here. I don’t know who would buy such books, but I guess you need just 100 customers to net you perhaps $5000 or more. Peculiar. I expect with 18,247 titles, there are likely to be a hundred that sound like real books. The part that is sad to me is to see such books listed on foreign bookseller pages. I guess the good news is that the system works only once per customer, though I would guess the next step is to make 18,247 imprint names with 18,247 different editor names.

I thought the editors’ names were perhaps anagrams. Using the Internet Anagram Server, the first combination for each name is:

Lambert M. Surhone gives Blather Summoner

Miriam T. Timpledon gives Immolated Imprint

Susan F. Marseken gives Frankness Amuse

Probably just a coincidence. Anyway, I am frankly unamused by the idea of books automatically being produced, then automatically being recommended by Amazon, given that some people will undoubtedly pay for something they could get for nothing.

Now I just need an AI that will automatically buy these with robo-dollars and the cycle will be complete. Really, better yet would be to write a script that would automatically post a review for each one and note the content is free on Wikipedia. That would be the best automation of all.

Update: I wrote Amazon to complain. They reply (among other boilerplate sentences), “As a retailer, our goal is to provide customers with the broadest selection possible so they can find, discover, and buy any item they might be seeking.” They forgot the words “and pay us.” No one in their right mind seeks to pay for information they could get for free. It turns out Betascript is just one of three imprints under VDM Publishing – reading the Wikipedia article on VDM Publishing is fascinating, especially the discussion section. Amazon currently lists 38,909 Alphascript and 18,289 Betascript books, plus 321 books in German by Fastbook Publishing.

If you’re as disgusted by Amazon’s behavior as I am, I suggest two strategies: write and complain (and get a boilerplate response, but enough complaints might add up) by going here and clicking on Contact Us in the right column, and post 1-star reviews for any of these you run across, e.g., mine here – something to do while waiting for your code to compile.

Update: as of January 24th, 2011, Alphascript is up to 112,420 titles and Betascript has 230,460 titles. What a crock – shame on you, Amazon. Sadly, Miriam and Susan never caught up to Lambert: he has 230,535 titles to his name, while they each have only 69,395.

Tags: , , , , ,

« Older entries § Newer entries »