1
0
mirror of https://github.com/LearnOpenGL-CN/LearnOpenGL-CN.git synced 2025-08-22 20:25:28 +08:00

proofread 06 In Practice/01 Debugging.md, 补充一些原文的信息。其中调试法线的示意图和官方原文图不一样,但并没有更换,因为示意效果相同。

This commit is contained in:
SuperAo
2024-04-08 10:26:24 +08:00
parent 36771b0948
commit 33bc971d2a

View File

@@ -4,9 +4,9 @@
----- | ---- ----- | ----
作者 | JoeydeVries 作者 | JoeydeVries
翻译 | Krasjet 翻译 | Krasjet
校对 | 暂无 校对 | [AoZhang](https://github.com/SuperAoao)
图形编程可以带来很多的乐趣,然而如果什么东西渲染错误,或者甚至根本就没有渲染,它同样可以给你带来大量的沮丧感!由于我们大部分时间都在与像素打交道,当出现错误的时候寻找错误的源头可能会非常困难。调试(Debug)这样的**视觉**错误与往常熟悉的CPU调试不同。我们没有一个可以用来输出文本的控制台在GLSL代码中也不能设置断点更没有方法检测GPU的运行状态。 图形编程可以带来很多的乐趣,然而如果什么东西渲染错误,或者甚至根本就没有渲染,它同样可以给你带来大量的沮丧感!由于我们大部分时间都在与像素打交道,当出现错误的时候寻找错误的源头可能会非常困难。调试(Debug)这样的**视觉**错误与往常熟悉的CPU调试不同。我们没有一个可以用来输出文本的控制台在GLSL代码中也不能设置断点更没有方法方便地检测GPU的运行状态。
在这篇教程中我们将来见识几个调试OpenGL程序的技巧。OpenGL中的调试并不是很难掌握住这些技巧对之后的学习会有非常大的帮助。 在这篇教程中我们将来见识几个调试OpenGL程序的技巧。OpenGL中的调试并不是很难掌握住这些技巧对之后的学习会有非常大的帮助。
@@ -52,7 +52,7 @@ std::cout << glGetError() << std::endl; // 返回 1281 (非法值)
std::cout << glGetError() << std::endl; // 返回 0 (无错误) std::cout << glGetError() << std::endl; // 返回 0 (无错误)
``` ```
<fun>glGetError</fun>非常棒的一点就是它能够非常简单地定位错误可能的来源并且验证OpenGL使用的正确性。比如说你获得了一个黑屏的结果但是不知道什么造成了它是不是帧缓冲设置错误是不是我忘记绑定纹理了通过在代码中各处调用<fun>glGetError</fun>可以非常快速地查明OpenGL错误开始出现的位置,这也就意味着这次调用之前的代码中哪里出错了 <fun>glGetError</fun>非常棒的一点就是它能够非常简单地定位错误可能的来源并且验证OpenGL使用的正确性。比如说你获得了一个黑屏的结果但是不知道什么造成了它是不是帧缓冲设置错误是不是我忘记绑定纹理了通过在整个代码库中调用<fun>glGetError</fun>可以快速捕获OpenGL错误开始出现的第一个地方
默认情况下<fun>glGetError</fun>只会打印错误数字,如果你不去记忆的话会非常难以理解。通常我们会写一个助手函数来简便地打印出错误字符串以及错误检测函数调用的位置。 默认情况下<fun>glGetError</fun>只会打印错误数字,如果你不去记忆的话会非常难以理解。通常我们会写一个助手函数来简便地打印出错误字符串以及错误检测函数调用的位置。
@@ -391,7 +391,7 @@ RenderDoc是另外一个很棒的完全[开源](https://github.com/baldurk/re
### NVIDIA Nsight ### NVIDIA Nsight
NVIDIA流行的[Nsight](https://developer.nvidia.com/nvidia-nsight-visual-studio-edition) GPU调试工具并不是一个独立程序而是一个Visual Studio IDE或者Eclipse IDE的插件。Nsight插件对图形开发者来说非常容易使用因为它给出了GPU用量逐帧GPU状态大量运行时的统计数据。 NVIDIA流行的[Nsight](https://developer.nvidia.com/nvidia-nsight-visual-studio-edition) GPU调试工具并不是一个独立程序而是一个Visual Studio IDE或者Eclipse IDE的插件 (NVIDIA现在也提供独立版本了)。Nsight插件对图形开发者来说非常容易使用因为它给出了GPU用量逐帧GPU状态大量运行时的统计数据。
当你在Visual Studio或Eclipse使用Nsight的调试或者性能测试指令启动程序的时候Nsight将会在程序自身中运行。Nsight非常棒的一点就是它在你的程序中渲染了一套GUI系统你可以使用它获取你程序各种各样有用的信息可以是运行时也可以是逐帧分析。 当你在Visual Studio或Eclipse使用Nsight的调试或者性能测试指令启动程序的时候Nsight将会在程序自身中运行。Nsight非常棒的一点就是它在你的程序中渲染了一套GUI系统你可以使用它获取你程序各种各样有用的信息可以是运行时也可以是逐帧分析。