3D软引擎之三角形光栅化

在实现3D软引擎的三角形光栅化算法时,遇到邻近三角形间出现裂缝的问题。通过研究《3D游戏编程大师技巧》的源码并尝试移植,虽然经历了多次代码修改和调试,但问题依然存在。最终发现遗漏了一个编译开关,调整后成功解决了裂缝问题,实现了无裂缝的三角形光栅化效果。
摘要由CSDN通过智能技术生成

昨天前天实现了三角形光栅化算法,然而在邻近三角形之间出现了裂缝,于是弄了一天,后来,查看了《3D游戏编程大师技巧》的源码的示例,一看,他那没有裂缝,我这代码是按照书本的思路去实现的,经过一翻挣扎把它的代码移植到自己的代码,再经过一翻大修改,F5调试运行,结果仍然有裂缝!我觉得奇怪了,于是再对照了一遍代码,原来还有一个编译开关,于是又把另一编译开关所在的代码复制过来,然后再修改,在修改过的过程中遇到了不少的问题,先是变量的命名,然后就是有些变量没改,导致出现了很奇怪的错误,经过一翻纠正,我怀着兴奋的心情按F5,结果裂缝的问题解决了!



//使用快速版本有裂缝

#if ( (RASTERIZER_MODE==RASTERIZER_FAST) || (RASTERIZER_MODE==RASTERIZER_FASTEST) )
	// perform y clipping
	//if (y0 < min_clip_y)
	if (y0 < TOP_BORDER_SCR)
	{
		// compute new xs and ys
		xs = xs+dx_left*(-y0+TOP_BORDER_SCR);
		xe = xe+dx_right*(-y0+TOP_BORDER_SCR);

		// reset y0
		y0 = TOP_BORDER_SCR;
	} // end if top is off screen

	if (y2 > BTM_BORDER_SCR)
		y2 = BTM_BORDER_SCR;

	// make sure top
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值