hn-classics/_stories/1996/13285619.md

6.6 KiB
Raw Permalink Blame History

created_at title url author points story_text comment_text num_comments story_id story_title story_url parent_id created_at_i _tags objectID year
2016-12-30T17:27:45.000Z Ray-Casting Tutorial for Game Development and Other Purposes (1996) http://permadi.com/1996/05/ray-casting-tutorial-table-of-contents/ dosshell 93 7 1483118865
story
author_dosshell
story_13285619
13285619 1996

Source

Ray-Casting Tutorial permadi.com


__ permadi.com

Javascript is disabled in your web browser. Please enable it (see how).

All Technology Programming HTML Blog Adobe Flash General ActionScript iPhone JavaScript Mac facebook Flex Graphics Google Android Games Java PHP iOS xCode WordPress Photoshop RSS Tutorial Unity3D (more)

General

Ray-Casting Tutorial

May 6, 1996 By fpermadi

__0

Ray-Casting Tutorial For Game Development And Other Purposes

by F. Permadi

PREFACE

This document explores the fundamental theory behind ray-casting, a pseudo 3-dimensional rendering technique that are very popular in game development arena in the 90s.  In general, this document does not bother with implementation and coding detail. The discussion will be mainly about concepts, the implementation is up to the reader.  For a casual reader, the knowledge of the Pythagorean theorem and knowledge of high-school level math are assumed.  

This document was written in the year of 1996, and although ray-casting has been supplanted by newer and more powerful techniques (and hardware!), the reader can hopefully still benefit from the technique.  

Please be sure to read the disclaimer before proceeding.

CONTENTS

  • Introduction
  • [A Brief History][42]
  • [What is Ray-Casting][42]
  • [Ray-Casting vs Ray-Tracing For Game Development][43]
  • [Limitations of Ray-Casting][42]
  • [Creating a World][42]
  • [Defining Projection Attributes][44]
  • [Finding Distance To Projection Plane][45]
  • [Finding Walls][46]
  • [Finding Distance to Walls][47]
  • [Drawing Walls][48]
  • [Texture Mapped Walls][49]
  • [Drawing Floors][50]
  • [Drawing Ceilings][51]
  • [Walls with Variable Height][52]
  • [Horizontal Motion /  / Making the Player Move][53]
  • [Looking Up and Down][42]
  • [Flying and Crouching][42]
  • [Combined Effects][42]
  • [Shading][54]
  • [Bibliography, References and Notes][55]
  • [Example in Java (with source code)][56]

![caster10][57] 

Copyright 1996-2010 F. Permadi

[permadi@permadi.com][58]

This document may be printed for
personal/non-commercial/educational use, it may not be reproduced
and/or distributed without permission.

<< [BEGIN TUTORIAL][59] >>

[Next post__][60]

Advertisement

[Like Us on Facebook][61] | [Follow Us on Twitter][62] | [About ][63] | [Privacy Policy][64] | [Contact][65] | [Site Terms of Use][66]

(C) 2017 F. Permadi

__

[42]: [43]: http://permadi.com/1996/05/ray-casting-tutorial-2/ [44]: http://permadi.com/1996/05/ray-casting-tutorial-4/ [45]: http://permadi.com/1996/05/ray-casting-tutorial-5/ [46]: http://permadi.com/1996/05/ray-casting-tutorial-6/ [47]: http://permadi.com/1996/05/ray-casting-tutorial-8/ [48]: http://permadi.com/1996/05/ray-casting-tutorial-9/ [49]: http://permadi.com/1996/05/ray-casting-tutorial-10/ [50]: http://permadi.com/1996/05/ray-casting-tutorial-11/ [51]: http://permadi.com/1996/05/ray-casting-tutorial-13/ [52]: http://permadi.com/1996/05/ray-casting-tutorial-14/ [53]: http://permadi.com/1996/05/ray-casting-tutorial-15/ [54]: http://permadi.com/1996/05/ray-casting-tutorial-19/#SHADING [55]: http://permadi.com/1996/05/ray-casting-tutorial-bibliography/ [56]: http://permadi.com/activity/ray-casting-game-engine-demo/ [57]: http://permadi.com/wp-content/uploads/2015/05/caster10-300x225.jpg [58]: mailto:permadi%40permadi.com [59]: http://permadi.com/ray-casting-tutorial-1 [60]: http://permadi.com/1996/05/ray-casting-tutorial-1/ [61]: https://www.facebook.com/pages/Permadicom/102374649838897 [62]: https://twitter.com/PermadiWebsite [63]: http://permadi.com/about-me/ [64]: http://permadi.com/privacy-policy/ [65]: http://permadi.com/contact/ [66]: http://permadi.com/terms-of-use/