100天的代码:我正在使用OpenGl和Qt复制Wolfenstein 3D。 带纹理的数据缓冲。

接下来的10天,我将尝试通过着色器加载GPU纹理数据。 到目前为止,我已经将纹理加载到GPU中,但是这些纹理是采样的,而不是随机访问的。 我的意思是,我无法访问纹理上的特定像素 (按列或行),我只能访问采样的像素。

随机访问纹理像素是光线投射的关键。 这样,当我击中由特定纹理包裹的墙时,我可能会计算射线所击中的部分的颜色。

这是我要开始前往的地方。

第25、26、27、28、29天:对不起,一个生病的男婴,它正在冲洗我的“空闲时间”,但这是我的承诺。

总而言之,我添加了代码来绘制用于介绍场景的矩形,而不是使用包裹的纹理,而是使用函数。 我要绘画的功能是左,底:黑色,更靠近右边框:红色,更靠近顶部边框:绿色。

获得此结果的片段着色器是:

我知道的不多,但对我来说今天足够了! 再见!!!

第21天 :编写代码以抽象摄影机的运动。

这是一个超级简单的代码,用于初始化和设置相机在世界坐标中的位置:

非常简单和天真。 我始终以功能朴素的代码为目标,因此可以从那时开始对其进行优化。 您如何看待这种方法? 让我知道!

非常感谢您的关注!