对于我们的最终作业,我和朋友正在用c ++创建一个Raytracer。我们正在与Github和cmake合作。一切都很好,直到我们实现了阴影和折射。这些在我的朋友计算机上工作正常,但不在我的计算机上。阴影根本不起作用,折射上有很多黑点。另一个奇怪的事情是,主文件中的std :: couts在执行后没有显示在终端中,但是我肯定正在处理正确的文件(在编写随机内容时仍然会出错)。
再次尝试克隆所有内容,通过usb复制文件并更新编译器。
由于我们正在使用浮点数,我认为它可能是浮点不准确的结果,但我想这不能解释丢失的打印件...... 不知道,代码的哪一部分会有所帮助,但我可以发布任何代码。他在64位上使用Ubuntu 15.04,我在同一台机器上使用14.04。
我希望,有人可以帮助我!
编辑:好的,只是尝试从包含的文件打印一些东西,工作得很好。但仍然没有来自主文件的打印..
答案 0 :(得分:1)
这种行为差异的原因可能是:
if
语句谓词的值,您做出某些决定等等。您还可以添加不变量的检查(使用assert
语句或类似)。 -Wall -Wextra
(甚至是Clang中的-Weverything
进行编译),请使用sanitizers,例如-fsanitize=address,undefined
(在GCC和Clang中可用)。您也可以使用Valgrind来捕获此类错误,或使用一些静态分析工具。