使用 devc++ 移植 高精度 命令行窗口光线追踪代码 用5秒一帧的画面更新,理解3D游戏使用GPU加速的必要性

devc++ 移植高精度光线追踪代码 【C++】字符画的光线追踪 RTXON,第 2 弹!|ASCII Ray Tracing in C++ Part 2_哔哩哔哩_bilibili

解决方案:

先把下载压缩包,然后解压缩,长按解压后的 main 函数直接拖进 devc++里,可以直接打开该文件,然后直接点击编译运行,发现报错。

1. 根据之前的经验帖子修改报错的 _s 后缀函数:使用 devc++ 移植 低精度 命令行窗口光线追踪代码 解决注释乱码以及控制台换行问题 - CodeBus

2. 再点击编译运行,devc++ 会自动跳转到 screen.h 文件,删除或注释#pragma once 这一行,然后点击 main 选项卡返回 main 文件,然后点击编译运行即可。

3. 还有注意系统缩放到 100%且窗口全屏。参考 使用 devc++ 移植 命令行窗口光线追踪代码时注释乱码以及放缩问题 - CodeBus

4. 至于报错 C:\crossdev\src\mingw-w64-v3-git\mingw-w64-crt\crt\crt0_c.c:undefined reference to `WinMain'

原因是找不到 main 函数,所以说需要回到 main 选项卡里去点编译运行。

代码来源 DinoZ1729/Ray-2 (github.com)

倘若不能下载,鄙人已另存一个

链接:https://pan.baidu.com/s/1Uojoh3JhpW5g1Pcvvmf9pQ 
提取码:1xxg

长按 AWSD 移动,上下键(pageup pagedown)移动视角。

由于 CPU 线程计算速度有限,5s 一帧,修改 GPU 硬件加速选项貌似无效果,其他不编程用 GPU 代替 CPU 运行的方式也没寻找到。可见的使用显卡加速,还是需要特定的程序接口如 windows 的 directx , naiva 的 CUDA,通用 OpenGL ,之类有特定硬件加速的平台运行程序。与其希冀 easyx 再封装其他类似 OpenGL 的来加速图形运算开发 3D 工程,还是不如直接使用 3D 引擎,或者直接在有显卡加速的图形库上开发快速的 3D 渲染器。CPU 的限制应该说就是 easyx 的限制了。

添加评论