光线追踪之光照贴图尝试

下载了GitHub:https://github.com/AKGWSB/EzRT

运行代码得到一个 图:

常规opengl程序

第一个图像能不能作为纹理贴到第二个动图上去,这好象叫'光照贴图'。

现在尝试来一下

把图像上的颜色投向物体上

cpp 复制代码
	vector<vec3>vertexs;
	vector<vec4>colors;
	vector<vec3>Normals;

	//把图像上的颜色投向物体上
	{
		double* p = image;
		for (int i = 0; i < HEIGHT; i++)
		{
			for (int j = 0; j < WIDTH; j++)
			{
				// 像素坐标转投影平面坐标
				double x = 2.0 * double(j) / double(WIDTH) - 1.0;
				double y = 2.0 * double(HEIGHT - i) / double(HEIGHT) - 1.0;

				 MSAA
				//x += (randf() - 0.5f) / double(WIDTH);
				//y += (randf() - 0.5f) / double(HEIGHT);

				vec3 coord = vec3(x, y, SCREEN_Z);          // 计算投影平面坐标
				vec3 direction = normalize(coord - EYE);    // 计算光线投射方向

															// 生成光线
				Ray ray;
				ray.startPoint = coord;
				ray.direction = direction;

				// 与场景的交点
				HitResult res = shootTS(ray);
				vec4 color = vec4(0);
				color.x = *p; p++;  // R 通道
				color.y = *p; p++;  // G 通道
				color.z = *p; p++;  // B 通道

				if (res.isHit)
				{
					//命中序号
					if (res.n == s1.Sphere_n) {//triangles[3].Triangle_n
						vertexs.push_back(res.hitPoint);
						colors.push_back(color);
						Normals.push_back(res.material.normal);
					
					}

				}


			}
		}
	}


	//save_PointSN("changts.ply", vertexs, colors, Normals);
	//保存三角形光照贴图("triangle034.png", vertexs, colors, triangles, triangles[3].Triangle_n, "xy");

	保存球贴图("Sphere10.png", vertexs, colors, spheres, s1.Sphere_n);

然后得到一些稀疏点图

邻近插值

这是球上颜色图,有一半是不可见的

其它




贴上纹理

关掉材质色

是不是有点样子了

相关推荐
CG_MAGIC4 小时前
从光影到物理渲染:Substance Sampler 照片转材质
3d·材质·贴图·uv·建模教程·渲云渲染
nnsix4 小时前
Unity 贴图压缩格式 笔记
笔记·unity·贴图
摄影图3 天前
高考冲刺插画素材 助力高考宣传氛围感拉满
贴图·高考
mxwin3 天前
Unity Shader 法线贴图跟切线空间有什么关系
unity·游戏引擎·贴图·shader
mxwin3 天前
Unity Shader 贴图和采样的关系 如何保证贴图清晰
unity·游戏引擎·贴图·shader
cici158743 天前
双目视觉定位 + 贴图(纹理映射)方案
贴图
CG_MAGIC4 天前
三渲二材质:Blender/SU生成动漫风格效果图
3d·blender·材质·贴图·效果图·渲云渲染
易知微EasyV数据可视化4 天前
从卫星影像到法线贴图:为任意区域一键生成真实地形材质
经验分享·ai·数字孪生·材质·数据可视化·贴图
♡すぎ♡6 天前
镜面 IBL 预过滤贴图的计算
算法·计算机图形学·贴图·pbr
CG_MAGIC6 天前
V-Ray灯光系统详解:穹顶灯、面光与IES光域网
3d·贴图·效果图·建模教程·渲云渲染