1.使用基于WEB Canvas的JavaScript光线跟踪算法试验
http://www.cnblogs.com/miloyip/archive/2010/03/29/1698953.html
//1.通过Javascript取得使用的Canvas
var canvas = document.getElementById("testCanvas");
//2.取得绘制环境(这里只使用2D绘制环境)
var ctx = canvas.getContext("2d");
//3.取得宽和高
var w = canvas.attributes.width.value;
var h = canvas.attributes.height.value;
//4.使用黑色填充背景
ctx.fillStyle = "rgb(0,0,0)";
ctx.fillRect(0, 0, w, h);
//5.取得图像数据
var imgdata = ctx.getImageData(0, 0, w, h);
//6.取得像素数据
var pixels = imgdata.data;
//7.逐个像素设置颜色
var i = 0;
for (var y = 0; y < h; y++) //从上到下逐行绘制
for (var x = 0; x < w; x++) //从左到右逐列绘制
{
pixels[i++] = 255*x/w; //红色分量
pixels[i++] = 255*y/h; //绿色分量
pixels[i++] = 127; //蓝色分量
pixels[i++] = 255; //阻光度alpha
}
ctx.putImageData(imgdata, 0, 0);
未完,完整见原文。
以上原理的C++实现
2.基于CPU和OpenGL及着色语言的的C/C++实现的光线跟踪体绘制算法思路及关键代码和实验结果
http://blog.csdn.net/timzc/article/details/6020028
http://blog.csdn.net/timzc/article/details/6020119
http://blog.csdn.net/timzc/article/details/6020260
http://blog.csdn.net/timzc/article/details/6023344
3.光线跟踪课件
http://www.siggraph.org/education/materials/HyperGraph/raytrace/rtrace0.htm