December 31, 2017

Books I read in 2017

Each year I write a list of books I read during the year. This is the 2017 list:
  1. The art of game design. A book about how to design games.
  2. Masters of Doom: How Two Guys Created an Empire and Transformed Pop Culture. Is a biography on John Carmack and John Romero, who created the popular games Wolfenstein 3D, Doom, and Quake.
  3. The Unthinkable: Who Survives When Disaster Strikes - and Why. The book will tell you what's happening with your body when a disaster is happening to you. Examples of disasters in the book includes 9/11 (both what was going on in the heads of the people in the buildings and in the airplanes), Hurricane Katrina, the 2004 Tsunami, a restaurant on fire, the 2007 Virginia Tech shootings, and crowd crushes during the pilgrimage to Islam's holy places in Saudi Arabia. So how do you survive a disaster? The basic idea is that you should be prepared and learn what's going on in your body when a disaster is happening.
  4. We Were Soldiers Once...and Young: Ia Drang - The Battle That Changed the War in Vietnam. The book is describing the battle famous from the movie with the same name. If you saw the movie, you should still read the book because a lot in a Hollywood movie is different from what really happened.
  5. The new drawing on the rights side of the brain. If you can't draw pictures you should read this book. The basic idea is that those who suck at drawing are drawing objects, while those who are good at drawing are drawing shapes. The easiest way to draw shapes and not objects is to turn whatever you are drawing upside down. Now your brain won't recognize what you are seeing making it much easier to draw shapes.
  6. Structures: Or Why Things Don't Fall Down. Is a book about how you can design machines and buildings so they don't fall down. It's not a book you should read if you want to learn how to actual design so things don't break - the purpose of the book is to give an overview of the area, but it includes some formula you may use but no examples how to use the formulas. But the book is filled with interesting examples of how structures historically have failed.
  7. Helicopter flying handbook. Is a free book written by the US Department of Transportation and is a handbook written mainly for those who want to become helicopter pilots. It will tell you all about aerodynamics, flight controls, systems, performance, flight maneuvers, emergencies, how to operate a helicopter in different weather conditions, and so on.
  8. Unity 5.x Shaders and Effects Cookbook - Master the art of shader programming to bring life to your Unity projects. This book will teach you about shaders. It will not teach you everything about shaders, but if you are using it together with other shader resources you will learn a lot, including how to write a fur shader.
  9. Low level hell - A scout pilot in the Big Red One. Is a biography on and by Hugh Mills who flew a scout helicopter in the Vietnam war.
  10. Chickenhawk. Is a true story written by Robert Mason, who was a helicopter pilot in the Vietnam war. The battle dramatized in the movie We Were Soldiers was one of the battles he participated in. This book is considered being a handbook for helicopter pilots all over the world. 
  11. Troop Leader: A Tank Commander's Story. A biography on a tank commander in the battle for Europe in 1944 and 1945.
  12. Ambush Alley: The Most Extraordinary Battle of the Iraq War. Tells the story of a one-day battle in the 2003 Iraq war. If you have seen the television series Generation Kill, and remember when they are driving on a bridge and are seeing a burned out military vehicle, that vehicle was destroyed in this battle.
  13. Game Feel: A Game Designer's Guide to Virtual Sensation. Some games just feel better than other games, and this book is trying to figure out why.
  14. Guests of the Ayatollah: The First Battle in America's War With Militant Islam. Tells the story of when Iran took the American embassy as hostage.
  15. The New Science of Strong Materials or Why You Don't Fall Through the Floor. Is closely connected with the above "Structures: Or Why Things Don't Fall Down" but is more about the history of materials used in engineering applications. 
  16. The word of Notch. Is a pdf version of Notch's blog. Notch is the guy who came up with the idea behind one of the world's most popular games: Minecraft. 
  17. The Timeless Way of Building. If you have read this book you have learned a new way to think about architecture - why are some buildings "better" than other? The answer is that you should use patterns when designing a building. 
  18. A Pattern Language: Towns, Buildings, Construction. Is written by the same author as The Timeless Way of Building, but includes examples of patterns discussed in that book. I believe the guy who invented the popular game SimCity read this book and came up with the idea for that game. 
  19. John Carmack Archive - Interviews. Free book consisting of interviews with John Carmack, who created the games Doom and Quake.
  20. Why Did the Chicken Cross the World?: The Epic Saga of the Bird that Powers Civilization. Tells the history of the chicken.
  21. Rush to Glory: Formula 1 Racing's Greatest Rivalry. Tells the story of the Formula One drivers Niki Lauda and James Hunt.
  22. Pour Your Heart Into It: How Starbucks Built a Company One Cup at a Time. Is written by Howard Schultz, who bought a company called Starbucks that was selling coffee beans, and decided that Starbucks should also sell coffee drinks. 
  23. Uncommon grounds - The history of coffee and how it transformed our world. Tells the history of coffee.
  24. Color and Light: A Guide for the Realist Painter. Includes a lot of information about color and light mostly aimed for painters, but 3d artists will also find it useful. For example, the author argues that using only photos as references is not a good idea because a photo is not an accurate representation of the real world. For example, colors and shadows tend to be different in a photo, so you also have to go out into the real world.  
  25. Storey's Guide to Raising Chickens. Everything you need to know about chickens.
  26. Computational Geometry: Algorithms and Applications. A book on how to triangulate points, how to generate convex hulls, etc. 
  27. Leonardo da Vinci. Written by the same guy who wrote the official Steve Jobs biography.
  28. A Thread Across the Ocean: The Heroic Story of the Transatlantic Cable. Tells the story of the first telegraph cable from UK to USA.
  29. The Box: How the Shipping Container Made the World Smaller and the World Economy Bigger. Tells the history of the container.
  30. Shake Hands with the Devil: The Failure of Humanity in Rwanda. Tells the story, from a UN perspective, of the 1994 civil war in Rwanda.
  31. The Path Between the Seas: The Creation of the Panama Canal, 1870-1914. As the title says, it tells the story of the construction of the canal between the Pacific and the Atlantic ocean.

December 21, 2017

Computational Geometry - Part 2

As said before, I've spent some time learning an area called Computational Geometry. This area is big (and some algorithms tend to be complicated) so I've still not learned everything. In this part I've studied algorithms that will cut polygons in different ways.

Sutherland-Hodgman. You can use the Sutherland–Hodgman algorithm if you have a polygon and you want to cut away the parts of that polygon that doesn't intersect with another convex polygon. The polygon you want to cut doesn't have to be convex. The result is the intersection between the polygons:

Greiner-Hormann. The Sutherland-Hodgman algorithm was kinda limited - it could only find the intersection of two polygons and one of the polygons had to be convex. It can be easily modified if you need the outside of the intersections, but the result is not optimal. If you have concave polygons (or convex or one of each) and you want do do other types of so-called boolean operations on the polygons, then you need another algorithm. One such algorithm is the Greiner-Hormann algorithm.





That's it for now. Next up on the study-list is boolean operations on meshes. You can use one of the above algorithms if you want to do boolean operations on meshes, but better algorithms exist.