这是用户在 2025-4-6 22:38 为 https://app.immersivetranslate.com/html/ 保存的双语快照页面,由 沉浸式翻译 提供双语支持。了解如何保存?

CG week3.2.2 2025.03.18 Tue PM 1:49 ・ 27Minutes 37seconds ZHANG YIWEN
CG 第 3 周 2.2 2025.03.18 周二 下午 1:49 ・ 27 分钟 37 秒 张益文

Attendees 1 00:00 오픈gl에서 선의 속성은 다음과 같은 속성들이 있는데 색상 이거는 뭐 점의 점의 속성이기도 하죠. 그래서 색상과 그다음에 선만이 갖는 속성은 두께 두께라는 게 있어요. 그다음에 선의 스타일 실선이라든가 점선이라든가 그런 스타일들 그런 것들이 이제 선 속성에 해당이 되고 이런 것들을 지정해 주는 함수들이 몇 개가 제공이 되는데 일단 첫 번째 볼 함수는 선의 두께를 지정하는 함수예요. 선의 두께를 내가 지정하고 싶다 하면은 GL 라인 위드스라는 함수를 이용해서 여기다가 플롯 타입으로
出席人数 1 00:00 在 OpenGL 中,线条有以下属性:颜色(这也是点的属性)。然后,线条特有的属性是粗细。接着是线条样式,比如实线或虚线等样式。这些都属于线条属性,并且提供了一些用于指定这些属性的函数。首先要看的函数是用于指定线条粗细的函数。如果想要指定线条粗细,可以使用 GL LineWidth 函数,并以浮点类型传递参数

Attendees 1 00:58 플롯 타입으로 선의 두께를 넣어주면 돼요. 이거는 이제 픽셀 디폴트는 1.0이에요. 디폴트는 1.0이고 그다음에 디폴트보다 조금 두꺼운 선을 그리고 싶다 그러면 2.0 3.0 이런 식으로 이제 값을 넣어주면은 선의 두께가 변경이 되는 거죠. 두 번째 속성은 선의 스타일이에요. 스타일 선의 스타일 선의 스타일은 일단은 아까 블렌딩하는 것과 마찬가지로 내가 어떤 스타일을 갖는 선을 그리고 싶다 하면은 활성화를 먼저 해줘야 돼요. 그래서 마찬가지로 GL 이네이블 함수와 GL 디세이블 함수를 이용해서 선 스타일을 활성화해 주거나 혹은 비활성화해 줘야 되는데 선 스타일을 활성화할 때는 쥐에 언더바 라인 언더바 스티플 스티플이라는 인자를 전달을 하면은 선의 스타일을 이제 바꿀 수가 있어요. 그다음에 GL d 세이블 한 다음에 마찬가지로 GL 라인 스티프를 넣어주면은 이거는 선의 스타일을 사용하지 않겠다라는 내용이죠. 선 스타일을 이렇게 활성화시킨 다음에 이제 선 스타일을 지정을 해줘야겠죠.
在绘图类型中输入线条的粗细即可。默认像素是 1.0。默认是 1.0,如果想绘制比默认稍微粗一点的线,可以输入 2.0、3.0 等值,这样就可以改变线条的粗细。第二个属性是线条的样式。线条样式,如果想绘制某种样式的线条,首先需要激活它。因此,与混合类似,需要使用 GL 启用和 GL 禁用函数来激活或禁用线条样式。激活线条样式时,传递 GL_LINE_STIPPLE 参数,就可以更改线条样式。然后禁用 GL 并传入 GL_LINE_STIPPLE,表示不使用线条样式。激活线条样式后,接下来需要指定线条样式。

Attendees 1 02:21 그때 선 스타일을 지정해 주는 함수가 GL 라인 스티플이라는 함수예요. GL 라인 스티플이라는 함수고 두 개의 인자를 갖는데 첫 번째 인자는 각 비트의 반복 횟수, 리비트라는 인자는 패턴에서 각 비트의 반복 횟수를 나타내고 그다음에 두 번째 이제 패턴은 이제 선의 패턴을 나타내는 거예요. 이게 무슨 말이냐 하면은 디폴트 패턴은 0 x FFFF예요. f는 이 진수를 쓰면 어떻게 돼요? 1 1 1 1이죠. 1 1 1 1 1 1 1 1 1 1 1 1 1 11 1 이게 바로 FFFF예요. 그래서 디폴트는 이게 무슨 선이라는 얘기예요. 1이면은 그리라는 얘기고 0이면은 그리지 말라는 얘기인데 이렇게 되면 그냥 쭉 실선이 그려지겠죠. 그래서 이 디폴트 패턴의 이 패턴 값은 뭐가 된다? 0 x FFFF 16진수로 지정을 해준 거예요. 그래서 디폴트 패턴은 아마 GL 라인 스티플 그다음에 패턴의 반복 수는 1이고 0 x ff f f가 되겠죠.
用于指定线条样式的函数是 GL_LINE_STIPPLE。这个函数有两个参数:第一个参数是每个位的重复次数,重复位表示模式中每个位的重复次数;第二个参数是模式,表示线条的模式。默认模式是 0xFFFF。用十六进制表示就是 1 1 1 1。1 1 1 1 1 1 1 1 1 1 1 1 1 1,这就是 FFFF。1 表示绘制,0 表示不绘制,这样就会绘制成实线。因此,默认模式的模式值是 0xFFFF,用十六进制指定。默认模式可能是 GL_LINE_STIPPLE,重复次数为 1,值为 0xFFFF。

Attendees 1 03:40 이게 별도로 지정하지 않은 상태에서는 그려지는 거고 여러분이 만약에 GL 라인 스티플 한다면 1 콤마 f0 f0으로 바꿨다. 그럼 f는 뭐예요? 1 1 1 1이고 0은 0000이죠. 1 1 11 0000 하면 이제 선이 어떤 선으로 바뀌어요? 점선으로 바뀐다는 얘기예요. 알겠나요? 이거 한번 예제 4를 통해서 확인을 해볼게요.
与会者 1 03:40 这是在没有特别指定的情况下绘制的,如果你使用 GL 线条样式,就会把它改为 1、f0 f0。那么 f 是什么?是 1 1 1 1,0 是 0000。如果是 1 1 11 0000,那么线条会变成什么样?就是变成虚线。明白了吗?我们将通过示例 4 来确认一下。

Attendees 1 04:11 스위치 케이스 4
与会者 1 04:11 开关用例 4

Attendees 1 04:23 자 여기 보면은 먼저 색상은 뭘로 지정해 주나 선의 색상을 RGB에서 하얀색으로 지정을 했네요. 그렇죠 하얀색으로 지정을 하고 선의 두께를 선의 두께를 디폴트는 1.0인데 5.0으로 5배 두껍게 해줬어요. 그다음에 삼각형을 그렸네요. 세 점의 좌표를 주고 이번에는 뭘로 그렸어요? 라인 룸으로 그렸죠 그럼 내부가 채워져요 안 채워져요 안 채워지고 그냥 테두리만 나오겠죠 테두리만 나오는 삼각형인데 솔리드 라인으로 아마 그려지게 될 거예요. 실선으로 그렇죠 그다음에 뭐 해주라고 했어요. 이제 선 스타일을 활성화해 주라고 했죠. GL 이네이블 하고 인자로 GL 라인 스티플 넘겨주면 이제 나는 개성 있는 선을 그리겠다 그런 얘기죠. 그다음에 패턴을 지정한 함수가 뭐였어요? GL 라인 스티플이라는 함수고 일단은 여기 반복 수를 1로 하고 0 x f0 f0 으니까 이건 뭐예요? 점선이 되겠죠 점선으로 이제 반대 방향 삼각형을 하나 그렸어요.
参会者 1 04:23 好的,看这里,首先颜色是什么指定的呢?线的颜色在 RGB 中被指定为白色。对吧,指定为白色,然后线的粗细,默认是 1.0,现在被放大到 5.0,变成 5 倍粗。接着绘制了一个三角形。给出了三个点的坐标,这次是用什么绘制的呢?用线条绘制的,对吧。那么内部会被填充吗?不会被填充,只会显示边框。这是一个只有边框的三角形,可能会用实线绘制。实线,对吧。然后让你做什么?现在让你激活线条样式。使用 GL_ENABLE,并传入 GL_LINE_STIPPLE 参数,意思是我要绘制一个有个性的线条。然后用什么函数指定了模式?是 GL_LINE_STIPPLE 函数,首先重复次数设为 1,0x f0 f0,这是什么?这将是一个虚线。然后绘制了一个相反方向的三角形。

Attendees 1 05:30 그다음에 선 스타일을 비활성화해 주고 그래서 이거를 실행해 보면은
参会者 1 05:30 然后禁用线条样式,所以执行这个的话

Attendees 1 05:46 이런 결과를 얻게 되네요. 그래서 첫 번째 그린 삼각형은 실선으로 두께가 얼마 두께가 5가 되죠 5가 되는 실선이 되는 거고 두 번째 그린 0 모양의 삼각형은 점선으로 두께가 5가 되는 건데 요 반복 수에 따라서 뭐가 달라질까 반복 수 지금 이 모양 잘 살펴보고 있다가 반복 수를 한번 5로 바꿔볼게요. 5로
与会者 1 05:46 得到了这样的结果。所以第一个绘制的三角形是实线,厚度为 5,变成了厚度为 5 的实线。第二个绘制的 0 形状的三角形是虚线,厚度为 5。让我们看看如果改变重复次数会有什么变化。现在我正仔细观察这个形状,准备将重复次数改为 5。改为 5

Attendees 1 06:19 5로 바꿨더니 이 간격이 엄청 커졌죠. 그러면 다섯 번이 반복이 됐다는 얘기니까 o로 바꾸면은 f가 5번 FFFF 0000 FFFF 0000 이런 식으로 반복이 된다는 얘기예요. 패턴이 알겠나요?
与会者 1 06:19 改为 5 后,间距变得非常大。这意味着重复了 5 次,所以当改为 o 时,f 会重复 5 次,变成 FFFF 0000 FFFF 0000 这样的模式。你明白这个模式了吗?

Attendees 1 06:40 그래서 이 반복 수는 이 패턴을 어떻게 반복시킬지 를 나타내는 거죠. 패턴의 각 비트를 각 비트를 얼마만큼 반복시키는지
与会者 1 06:40 所以这个重复次数是表示如何重复这个模式。每个模式的位要重复多少次

Attendees 1 06:54 뭐 어려운 내용 없어요. 그렇죠 어려운 내용 없으니까 한번 그냥 읽어보면 될 것 같아요. 자 이제는 다각형 속성 한번 볼게요. 지금까지 라인 속성 봤으면은 다각형 사각형의 속성은 뭐 색상은 점도 그다음에 선도 다각형도 공통적으로 갖는 속성이죠. 그다음에 다각형만이 갖는 특별한 속성은 채우기 스타일 채우기 스타일은 채울지 말지를 결정한다는 얘기예요. 채울지 말지 그다음에 채우기 패턴은 그러면 만약에 채우게 되면은 특정 패턴을 가지고 채울 수 있다 그런 얘기예요. 일단 채우기 스타일을 지정하는 함수 채우기 스타일을 지정한 함수 바로 GL 폴리곤 모드라는 함수를 써요. GL 폴리곤 모드 주 폴리곤 모델을 쓰는데 첫 번째 인자로는 내가 앞면과 뒷면 따로따로 스타일을 지정해 줄 수가 있어요.
与会者 1 06:54 没有什么难的内容。对吧,因为没有难的内容,可以直接读一读。现在我们来看看多边形属性。之前我们看了线的属性,多边形(四边形)的属性包括颜色、点以及线,这些都是共同的属性。多边形特有的属性是填充样式,填充样式决定是否填充。如果决定填充,还可以使用特定的图案填充。首先,我们使用 GL 多边形模式函数来指定填充样式。在使用 GL 多边形模式时,可以为正面和背面分别指定不同的样式。

Attendees 1 07:59 첫 번째는 대상 면 내가 앞면에 어떤 스타일을 지정하고 싶으면은 GL 프론트라는 임자를 여기다 넣어주면 되고, 내가 뒷면 속성을 지정하고 싶으면은 젤 백 넣어주면 되고, 그다음에 나는 귀찮아서 앞면 뒷면 한꺼번에 지정할 거야. 동일한 속성으로 하면 어떻게 넣어주면 돼요? 듀l 프론트 엔드 100 이렇게 넣어주면 돼요 어디에 들어가는 거예요? 여기 다 이 페이스라는 인자에 셋 중에 하나가 들어간다는 얘기죠. 그다음에 두 번째 인자로 이제 필 스타일을 넣어주는데 이 필 스타일은 세 가지가 있어요. 삼각형 하나를 그리는데 삼각형 하나 점이 3개가 필요하겠죠. 그냥 점으로만 삼각형을 표현할 수도 있고 그다음에 라인으로만 삼각형을 표현할 수도 있고 그다음에 채워서 삼각형을 표현할 수도 있겠죠. 그래서 이 필 스타일이 쉘 포인트 쉘 라인 젤 필 셋 중에 하나를 이제 줄 수 있다는 얘기죠.
出席者 1 07:59 首先,如果要指定对象面的前面样式,可以在这里放置 GL 前置参数,如果要指定背面属性,则放置 GL 后置参数。然后,如果我想同时指定前面和背面且使用相同的属性,该如何操作?可以通过 GL 前置和后置 100 来完成。这个参数放在哪里?这意味着在面参数中设置三种选项之一。接下来,第二个参数是填充样式,有三种填充样式。绘制一个三角形需要 3 个点。可以仅用点表示三角形,也可以用线条表示三角形,还可以填充三角形。因此,填充样式可以是 shell 点、shell 线或 GL 填充三种之一。

Attendees 1 08:58 그래서 이 채우기 스타일을 잘 지적을 하면은 앞면은 채우고 뒷면은 그냥 어떻게 라인으로만 그리도록 할 수도 있겠죠. 우리 지난 시간에 다각형 삼각형은 앞면과 뒷면에 있다는 거 얘기했었죠. 그래서 앞면과 뒷면을 따로 별도로 각기 다르게 이제 속성을 지정해 줄 수가 있어요. 그래서 채우기 이건 이제 채울지 말지가 채우기 스타일이고 그다음에 내가 채우기로 결정을 했으면은 채울 때 어떤 패턴을 이용해서 채울 수가 있어요 그러기 위해서는 이제 아까도 선 스타일을 선 스타일을 사용하기 위해서는 GL 이네이블 한 다음에 라인 스티프를 활성화시켰죠. 그다음에 다각형도 마찬가지로 패턴을 이용해서 채우겠다 하면은 gr 이네이블 한 다음에 폴리곤 스티프를 활성화시켜줘야 돼요. 폴리곤 스티플 활성화시키고 끌 때는 디세이블 폴리곤 스티프 하고 그러면 아까 라인을 라인 같은 경우는 이제 뭐 점선으로 할지 실선으로 할지 그런 패턴을 지정해 주는 함수가 라인 스티프이었죠.
出席者 1 08:58 通过良好的填充样式设置,可以使前面填充,背面仅用线条绘制。我们上次讨论过多边形三角形存在前面和背面。因此,可以为前面和背面分别指定不同的属性。填充样式是决定是否填充,如果决定填充,可以使用某种模式填充。就像之前使用线条样式需要启用 GL 并激活线条模式一样,对于多边形,如果要使用模式填充,也需要启用 GL 并激活多边形模式。激活多边形模式后,关闭时使用禁用多边形模式。之前线条有点线或实线等模式,由线条模式函数指定。

Attendees 1 10:07 폴리곤에서는 젤 폴리곤 스티플이라는 함수를 써요. 그다음에 여기에다가 이제 채우기 패턴을 넣어주는데 이게 아마 이거 만드는 게 이제 복잡한 일이 되죠. 그래서 나는 이런 형태로 뭔가 다각형을 채울 수도 있어요. 근데 이게 다 이제 바이너리 16진수로 여러분이 지정을 해줘야 되기 때문에 좀 복잡하죠. 흰색은 들어가는 거고 검은색은 안 들어가는 거죠. 이거는 이제 물론 반복이 되죠. 반복이 되긴 하는데 그거를 배열의 형태로 배열의 형태로 명시를 해줘야 되는 게 조금 복잡해요. 위에 예제는 뭔가 하나는 삼각형 앞면을 그린 거고 뒷면은 라인으로 표시를 한 거예요. 코드 한번 볼까요? 5번 6번
在多边形中,我们使用多边形填充(Polygon Stipple)函数。然后在这里放入填充图案,制作这个可能会变得相当复杂。所以我可以用这种方式填充多边形。但是因为你需要用二进制 16 进制来指定,所以会有点复杂。白色表示填充,黑色表示不填充。这当然会重复。虽然会重复,但需要以数组的形式明确指定,这有点复杂。上面的例子是绘制了一个三角形的正面,背面用线条表示。我们来看看代码?第 5、6 行

Attendees 1 10:59 자 일단 5번은 뭐 하는 건가 5번 5번 코드 보면은 색상을 뭘로 지정을 했어요? 빨간색으로 지정을 했죠. 그다음에 폴리곤 모드에서 앞면은 어떻게 하기로 했어요? 앞면은 1 하기로 했죠. 그다음에 폴리곤 모드에서 뒷면은 어떻게 하기로 했어요? 라인으로 그리라는 얘기죠. 앞면은 b하고 뒷면은 라인이에요. 그 삼각형 2개를 그릴 거예요. 하나는 150,200 그다음에 352대 253대 이 그리는 순서가 어떻게 될까
好的,第 5 行是做什么?看第 5 行代码,颜色被指定为什么?指定为红色。然后在多边形模式下,正面如何处理?正面设置为 1。在多边形模式下,背面如何处理?意思是用线条绘制。正面是 b,背面是线条。将绘制两个三角形。一个在 150,200,然后是 352 对 253,这个绘制顺序会是什么样的

Attendees 1 11:36 1920이면은
与会者 1 11:36 如果是 1920 年

Attendees 1 11:47 편의상 여기 준비를 준비를 아까 우리가 0 콤마 0으로 잡았죠. 여기 0 콤마 0으로 주고 150 200 하면은 여기가 150이다 그러면 200은 대략 여기 이 점이 되겠죠. 그다음에 두 번째 점은 뭐예요? 350 200 150 300 350 200 여기가 두 번째 점이 되겠네요. 그다음에 세 번째 점은 250 350 가운데 더 높이 그려봤죠. 세 번째 점에 이렇게 돼 있네요. 이렇게 순서대로 삼각형을 그린 거죠. 우리가 보고 있는 게 앞면이에요. 뒷면이에요. 안면 보고 있는 거죠. 근데 우리 앞면은 무슨 색으로 채워질까? 빨간색으로 채워지겠죠. 그다음에 밑에 삼각형은 150,300, 150 15,300 이렇게 하나 넣고 그다음에 353대 35,300 여기가 되겠죠. 그다음에 마지막 점은 250 150 250 150이니까 한 이 정도 될 것 같아요. 이렇게 명시가 됐네요.
与会者 1 11:47 为了方便,我们刚才将此处设置为 0,0。如果在这里设置为 0,0 并且为 150 200,那么这里将是 150,那么 200 大概是这个点。接下来第二个点是什么?350 200 150 300 350 200 这里是第二个点。然后第三个点是 250 350,我们在更高的地方画了它。第三个点就是这样。这样依次绘制了三角形。我们看到的是正面还是背面?正面。那么我们的正面将以什么颜色填充?它将以红色填充。然后底部的三角形是 150,300,150 15,300,然后是 353 对 35,300。最后一个点是 250 150 250 150,大概是这样。这就明确了。

Attendees 1 13:03 그렇죠 이렇게 가면은 어느 쪽이 앞면이에요? 이 뒤쪽이 안면이죠. 그럼 우리가 바라보고 있는 건 어떤 면이에요? 뒷면을 보고 있으면 얘는 뭘로 채워질까? 뒷면은 선으로 그리라고 했죠. 그래서 앞면과 뒷면이 이제 다르게 렌더링이 되는 거를 볼 수가 있을 거예요.
与会者 1 13:03 是的,如果这样的话,哪一侧是正面?这里的背面是正面。那么我们正在看的是什么面?如果我们看的是背面,它将如何填充?背面要求用线条绘制。所以现在可以看到正面和背面的渲染方式是不同的。

Attendees 1 13:29 그래서 앞면은 삼각형으로 채워지고 이제 뒷면은 라인으로 그려졌죠. 그 얘기가 이제 케이스 5번에서 나온 거고 그다음에 6번은 아마 삼각형을 그리는데
与会者 1 13:29 所以正面被填充为三角形,背面现在是用线条绘制的。这个讨论是在第 5 个案例中提到的,接下来第 6 个案例可能是关于绘制三角形的

Attendees 1 13:48 GL 이네이블에서 폴리곤 스티프를 활성화시켜줬어요. 그다음에 이게 뭘까 이게 이게 뭘까요? 눈을 감고 바라보면은 그 파리 패턴이 보이나요? 0은 안 그리는 거고 위에는 하나도 안 그렸네요. 그렇죠 하나도 안 그린 거고 03은 뭔가 03은 3은 이진수 어떻게 돼요? 0011이죠 0000 0011 해서 쫙 풀었으면은 패턴이 보이나요? 아무튼 그래서 이런 패턴을 지정해 주면은 이제 다각형을 채울 때 GL 폴리곤 스티플에서 이 플라이 파리 패턴을 이제 지정을 해준 거죠. 파리 패턴을 지정을 해준 거고 그래서 다각형 하나를 그리는데 뭐야 폴리곤 스티프를 활성화했으니까 활성화하고 그다음에 여기서 스티프를 정의해줬기 때문에 패턴을 정의해줬기 때문에 이 사각형은 어떻게 된다 이 패턴으로 채워지게 된다는 얘기예요. 색상은 뭘로 할까? 파란색으로 한번 해볼까요?
与会者 1 在 13:48 在 GL 启用中激活了多边形模板。然后这是什么?这到底是什么?闭上眼睛仔细看,能看到苍蝇模式吗?0 表示不绘制,上面什么都没画。对吧,什么都没画。03 是什么?03 中的 3 是二进制是怎样的?是 0011,0000 0011,展开后是否能看到模式?总之,通过指定这种模式,在使用 GL 多边形模板时,现在指定了这种苍蝇模式。指定了苍蝇模式,所以绘制一个多边形时,因为启用了多边形模板,并且在这里定义了模板,定义了模式,这个矩形将以这种模式填充。颜色用什么?我们试试蓝色怎么样?

Attendees 1 15:14 그래서 이렇게 파란색으로 패턴을 그릴 수 있겠죠. 이거는 GPT한테 해달라고 그러면 해 줄 것 같은데, 대략적으로 뭐 만들어 달라 하면은 아주 기똥차게 만들어질 것 같아. 이런 패턴들
因此,可以用蓝色绘制这种模式。如果对 GPT 说做这个,它大概会很漂亮地完成。大概说做什么,它就能很牛地制作出这些模式。

Attendees 1 15:36 사실 이 코드 전체 복사해서 저기 설명해 달라고 그러면 잘 해주죠. 해줄 거예요. 나보다 더 잘해줄 수도 있어요.
与会者 1 15:36 事实上,如果将整段代码复制并请求解释,他们会很乐意帮忙。他们可能会比我解释得更好。

Attendees 1 15:58 사각형 속성 함수
与会者 1 15:58 矩形属性函数

Attendees 1 16:06 그다음에 이제 중요한 주제가 나오는데 앤티 앨리어싱이라는 주제가 나와요. 엔티엘리어싱 안티 앨리어싱이라는 건 이제 우리 브레즈네 선 그리다 보면 어때요? 픽셀이 지그지그지그지그하게 선택이 되는 거죠. 그러다 보면은 어떤 욕구가 보이냐 하면은 이런 데 이런 데 보면 좀 지그재그하게 보이죠. 반면에 밑에는 어때요? 매끈하게 보이죠. 위에는 0도부터 180도까지 지그재그하게 제일 많이 보이는 게 이런 것들이 많이 보이는 것 같아요. 이런 것들이 이제 많이 보이고 얘는 좀 덜 보이고 그래서 위에는 이 지그재그한 거를 엘리어스팅이라고 해요. 엘리어스팅 근데 nt 엘리어스팅은 뭐예요? nt는 반대죠 LES팅을 없앤 거예요. nt le스팅이라는 건 이제 부드럽게 만든 결과죠. 그래서 여기서 엔티엘리어싱 즉 선을 선이나 도형을 그릴 때 테두리를 부드럽게 하기 위해서는 nt 엘리어싱을 해줘야 되는데 오픈젤에서 이제 nt 엘리어싱을 해주기 위해서는 활성화시켜줘야 돼요. 젤 이네이블에서.
接着现在出现了一个重要的主题,叫做抗锯齿。当我们绘制布雷兹纳线时,会发生什么?像素会呈现锯齿状。当你看到这些时,你会注意到边缘是不平滑的。相比之下,底部看起来很顺滑。在 0 度到 180 度的区间,最明显的是锯齿状的边缘。这些区域显得非常明显,而另一些则相对不那么明显。这种锯齿状的效果我们称之为锯齿(Aliasing)。而抗锯齿(Anti-Aliasing)正是为了消除这种锯齿效果。抗锯齿的目的是使线条或形状的边缘变得平滑。在 OpenGL 中,要实现抗锯齿,需要在 GL_ENABLE 中激活它。

Attendees 1 17:18 근데 이제 mt 엘리오스의 비밀은 뭐냐 하면 사실 얘는 배경과 블렌딩을 하는 거예요. 블렌딩을 배경과 색상을 그러니까 이게 우리가 계단이 막 보이다가 눈을 지긋이 감고 멀리서 보면 어때요? 계단이 없는 것처럼 보이죠. 눈을 슬쩍 감고 이렇게 본다는 얘기가 약간 블렌딩을 시킨다는 얘기예요. 그래서 얘도 약간 블렌딩을 배경하고 블랙 테두리를 블렌딩을 해주면은 이렇게 매끈하게 보이게 되는데 결국은 엔티엘리싱을 활성화시킨다는 얘기는 블렌딩을 활성화시킨다는 얘기나 마찬가지예요. 그래서 일단은 블렌딩을 활성화시켜야 되고 그다음에 뭐야 nt 엘리어슨대 대상을 지정하는 함수가 즉 이메이블 포인트 스무드 그러면 이제 포인트를 엔티엘리싱하겠다. 아까 포인트 네모랗게 그려진다고 했었죠 그걸 엔티엘리싱 하면 어떻게 그려질까 동그랗게 그려질 거예요.
抗锯齿的秘密实际上在于与背景进行混合。就像我们眯着眼睛远远地看时,阶梯状的边缘会变得不那么明显。眯眼的过程就是一种混合的效果。通过将边缘与背景颜色混合,可以使图像看起来更加平滑。事实上,启用抗锯齿基本上就是启用混合。首先需要启用混合,然后使用类似 glEnable(POINT_SMOOTH)的函数来指定抗锯齿的对象。例如,对于之前呈方形的点,启用抗锯齿后将会变成圆形。

Attendees 1 18:18 이제 그다음에 나는 라인을 라인을 엔티아 레싱하겠다는 GL 이네이블 GL 라인 스머스 해 주면 되고 그다음에 나는 폴리곤의 테두리를 부드럽게 하겠다 하면은 젤 이네이블 젤 폴리곤 순으로 해주면 되고 뭐 함수 하나가 빠진 것 같은데 코드를 한번 보면은 확인할 수 있을 것 같아요. 이거 몇 번이죠? 7번 7번 코드 보면은 봅시다. GI 컬러 3f 해서 무슨 색이에요? 이거 흰색이죠 흰색으로 했고 일부러 두께를 5로 줘가지고 조금 이제 앨리어싱이 보이도록 했어요. 5로 한 다음에 GL 비긴에서 라인으로 그리겠다는 얘기예요. 어디에 여기 주어지는 좌표들을 자 세타는 0도부터 180도까지 10도 간격으로 세타가 증가할 거고 그다음에 300 더하기 여기 300 요 300콤마 300은 뭘까요? 중심의 좌표가 되겠죠 그다음에 요 300은 뭘까요? 반질의 크기가 되겠죠 그다음에 코사인 사인 해주고 세타에다가 3.145v를 곱하고 180으로 나눴다는 얘기는 라디안 값으로 바꿔줬다는 얘기죠.
与会者 1 18:18 接下来我将启用 GL 线条平滑,然后如果要使多边形的边缘变得平滑,就启用 GL 多边形平滑即可。好像还少了一个函数,看看代码就能确认。这是第几个?第 7 个,看看第 7 个代码。使用 GL 颜色 3f,什么颜色?这是白色,故意将线条粗细设置为 5,以便可以看到抗锯齿效果。设置为 5 后,表示从 GL_BEGIN 开始绘制线条。这里给出的坐标,θ从 0 度到 180 度,每 10 度递增。然后是 300 加上这里的 300,300 是什么?这将是中心坐标,接下来这 300 是什么?将是半径大小。然后使用余弦和正弦,将θ乘以 3.145v 并除以 180,意味着转换为弧度值。

Attendees 1 19:45 즉 0도부터 180도까지 이게 원 위에 있는 점들을 그린 거예요. 샘플링을 한 거죠. 그거를 라인으로 그리는데 300콤마 300이면 어디예요? 중심이죠. 중심에서 원 위에 있는 점까지 라인으로 그리겠다는 얘기예요. 여기까지 한번 뭐야 그려보면은
与会者 1 19:45 即从 0 度到 180 度,这是在圆上采样的点。用线条绘制,如果是 300,300,在哪里?是中心。从中心到圆上的点绘制线条。看看会是什么样子

Attendees 1 20:14 아니면 안 돼 케이스 7
参会者 1 20:14 不然就不行的情况 7

Attendees 1 20:24 그림이 이렇게 그려질 건데 보면은 여기 여기 계단이 막 보이죠. 계단이 올라가고 싶은 계단들이 막 보여요. 보이는 거고 여기도 많이 보이고 얘도 많이 보이네요. 그렇죠 이거는 엔테러싱 됐다 안 됐다 안 됐다죠 얘는 보여요. 안 보여요. 얘는 안 보이죠. 얘는 브레지앤 알고리즘에서 그냥 뚜두두 앞으로 뭐야 기울기가 0이죠. 이거 0이기 때문에 그런 일이 없는 거죠.
参会者 1 20:24 这张图是这样绘制的,你会看到这里这里有楼梯,楼梯想要上升,很多楼梯都呈现出来。这里也有很多,那里也有很多。这是入态化了,没有了,没有了。这个可以看到,那个看不到。这个看不到。这个在布雷森汉算法中,就是简单地往前,斜率是 0。因为斜率是 0,所以没有这种情况。

Attendees 1 21:03 GL 이네이블에서 블렌딩을 켰어요. 그러면 어떻게 되는 거예요? 엔테리스싱을 활성화시켰다는 얘기죠. 그다음에 GL 이네이블 해서 라인 스무드 하면은 라인을 부드럽게 그리겠다는 얘기예요. 그다음에 아까 여기 소개 안 한 게 이걸 해줘야 돼요. 요거 쉘 블렌딩 함수를 지정을 해줘야 되는데 소스 알파와 1 빼기 소스 알파로 지정을 해줘야 돼요. 그다음에 라인을 그려요. 똑같이 그냥 라인만 그려요. 대신에 이번에는 몇 도부터 몇 도 180도부터 360도까지 그리죠. 위에 코드랑 다른 점은 뭐가 들어가는 거예요? 하나 둘 세 줄만 들어가는 거예요. 하나 둘 세 줄만 들어가는 거예요. 그리고 똑같이 그리는데
参会者 1 21:03 在 GL 启用中开启了混合。那会怎么样呢?这意味着启用了抗锯齿。然后通过 GL 启用线条平滑,表示要绘制平滑的线条。接下来还需要做一件事,就是指定混合函数。需要将源 alpha 和 1 减去源 alpha 设置为混合方式。然后绘制线条。还是只画线。不同的是这次从 180 度到 360 度绘制。上面的代码有什么不同之处?只增加了三行。只增加了三行。然后照常绘制。

Attendees 1 21:56 물론 다 그리고 나면은 이제 뭐야 부드럽게 안 할 거야 그다음에 블레이 끌 거야 이렇게 해줘야겠죠.
参会者 1 21:56 当然,绘制完后,现在要取消平滑,然后关闭混合,就这样处理。

Attendees 1 22:16 그래서 비교를 해보면은 아래 거는 이게 팀이 선전하는 것 같네요. 위에는 엔테일 레싱이 보이죠. 그 다음 밑에는 나름 근전처. 이게 결국은 이제 블렌딩을 시킨 거예요. 테두리에서 배경색하고 살짝살짝 블렌딩을
参会人员 1 22:16 所以比较下来,下面这个看起来团队表现不错。上面可以看到恩泰尔赛车。接下来下面是某种近端处理。这最终是进行了混合。在边缘处与背景色进行了轻微混合。

Attendees 1 22:44 그래서 이런 엔티엘레스팅 효과도 선이 갖는 속성인데 근데 이제 이거는 뭐 사람마다 다르겠지만 나는 그냥 위에 게 더 좋은 사람도 있어요. 위에 게 조금 더 명확하게 보이는 사람도 있고 밑에 거는 뭔가 약간 테두리 보면은 이게 약간 흐릿하게 보이는 그런 게 안 좋은 것도 있을 수 있죠.
参会人员 1 22:44 所以这种恩泰尔赛车效果也是线条具有的属性,但是每个人可能会有不同看法。我个人可能更喜欢上面那个。有些人觉得上面那个更清晰,而下面那个从边缘看可能会有点模糊,这可能也是不太好的地方。

Attendees 1 23:19 두께를 가면서 계속 바꿀 수도 있겠네요. 그렇죠 라인마다 이렇게 두께 바꾸면서 지금은 두께를 얼마로 해줬어요? 그냥 5로 공통되게 사용을 했죠. 그래서 여러 가지 효과를 이제 낼 수가 있고 우리가 오늘 쓴 좌표 공간은 왼쪽이 0이고 오른쪽이 600이고 아래쪽이 0이고 위쪽이 600이었어요. 지난번에 쓴 거는 그러니까 우리가 바라보는 오픈 지 좌표계는 무한히 넓은 공간인데 내가 어디를 바라보겠다는 거에 따라서 화면에 보이는 좌표의 범위가 달라지겠죠.
与会者 1 23:19 随着厚度的增加,我们也可以不断地改变它。是的,就像这样在每条线上改变厚度,现在厚度设置为多少?我们统一使用了 5。因此,我们现在可以产生各种效果,我们今天使用的坐标空间中,左侧为 0,右侧为 600,底部为 0,顶部为 600。上次使用的,也就是说,我们看的 OpenGL 坐标系是一个无限宽阔的空间,但根据我们要看的位置,屏幕上可见的坐标范围会有所不同。

Attendees 1 24:05 그래서 지난 시간에는 기본 출력 객체 점선 다각형 그다음에 확장 객체 원 타원 부채골 기타 등등에 대해 소개를 했고, 이번 시간에는 그런 객체들이 갖는 여러 가지 속성에 대해 소개를 했죠. 여러분 이제 그림 그릴 준비가 다 됐어요. 근데 그림을 그리는데 뭘로 그림을 그려야 돼요? 코딩으로 그림을 그려야 되죠. 코딩으로 비트맵서 그림판이나 그런 거 쓰는 게 아니라 코딩으로 이런 거 그릴 수 있겠죠. 첫 번째 과제가 3월 24일 일요일까지 일요일 저녁 이 클래스에 올라가 있는 거 일요일 저녁까지
与会者 1 24:05 所以上次课程介绍了基本输出对象,如点、线、多边形,然后是扩展对象如圆、椭圆、扇形等等。这次课程介绍了这些对象的各种属性。现在你们已经准备好绘图了。但是用什么来绘图呢?我们必须通过编码来绘图。不是使用位图或绘图工具,而是可以通过编码来绘制。第一个作业截止到 3 月 24 日星期日晚上,已经上传到这个课程中的星期日晚上。

Attendees 1 24:59 기본 객체를 이용해서 여러분만의 장면을 그리면 되는데 여기를 0 콤마 0으로 줘도 좋고 여기를 0커 모양으로 줘도 좋은데 아마 마이너스 10 플러스 10 마이너스 10 플러스 10이라고 하라고 아마 과제 이 클래스에 올라가 있을 것 같아요. 그거는 관측 공간은 어떻게 여러분이 그냥 시키는 대로 잡으면 돼요. 그래서 이거는 삼각형이고 이건 사각형이고 근데 여기는 좀 밝은 색이고 여기는 노란색이니까 이거 어떻게 한 걸까 그렇게 보이나요? 여기가 좀 밝으니까 햇빛이 여기서 이렇게 비추는 것 같죠? 이거 어떻게 했을까? 이거 사각형을 그리는데 4점의 색상을 조금씩 다르게 해주는 거죠. 아까 삼각형 그릴 때 빨간색 초록색 파란색 줬더니 안에가 블렌딩이 됐었죠. 여기는 노란색 노란색 노란색인데 여기는 약간 흰색 계통의 노란색을 주면 이런 식으로 나올 수 있겠죠.
参与者 1 24:59 您可以使用基本对象创建自己的场景,可以将其设置为 0,0,也可以按照您的意愿调整。可能会要求您使用-10 到+10 的范围。这个作业可能会上传到这个课程中。观测空间可以按照您的指示自由设置。这是一个三角形,这是一个四边形,这里颜色较亮,这里是黄色,看起来是怎么做到的呢?这里看起来比较亮,好像阳光从这里照射过来。这是怎么做到的?在绘制四边形时,将 4 个点的颜色略微调整。之前绘制三角形时给了红色、绿色、蓝色,内部就出现了混合。这里是黄色黄色黄色,如果在这里给一些偏白色的黄色,就可能会呈现这样的效果。

Attendees 1 26:05 얘도 아마 이렇게 여기도 약간 빨간색 여기는 완전 빨간색이고 여기는 좀 밝은 빨간색 밝은 빨간색을 준 것 같아요. 그래서 이렇게 리니어 인터플레이션이 되게끔 이런 것까지 했네. 아무튼 여기 기본 타원이 들어가고 이걸 똑같이 만들라는 얘기가 아니에요. 이걸 똑같이 만들라는 얘기가 아니라 여러분이 그냥 창의성을 발휘해서 나는 창의성이 없어 이거는 그냥 사각형 하나 해도 돼요. 사각형 하나 그려도 되는데 점수는 보지 못해요. 그러면 이제 점수가 좀 낮아질 수 있겠죠. 최소한 기본 객체들 그다음에 확장 객체를 다 포함을 시켜가지고 코딩으로 한번 그림을 그려보라는 얘기예요. 이거 왜 숙제를 했냐 하면은 익숙해지라는 얘기예요. 빨리 이제 랜더링 코드들에 대해서 어떻게 보면 뭐 거의 그냥 녹아 다 성 코드죠. 하지만 그래도 익혀두는 게 도움이 되겠죠.
参与者 1 26:05 这里似乎也有一些红色,这里是完全的红色,这里是较亮的红色,看起来给了较亮的红色。因此,这样实现了线性插值。总之,这里包含了基本椭圆,但并不是要求您完全复制。这不是要求您完全复制,而是希望您发挥创造力。即使您觉得自己没有创造力,只画一个四边形也可以。只画一个四边形可能会导致分数较低。最少要包含基本对象和扩展对象,并尝试通过编码绘制图形。之所以要求这个作业,是为了让您熟悉这些知识。尽快让渲染代码对您来说变得轻而易举。尽管如此,提前学习还是会有帮助的。

Attendees 1 27:09 이번 시간 내용은 기본 출력 객체의 속성들, 점선 다각형이 갖는 여러 가지 속성들 그다음에 이것과 관련된 어떤 이제 함수들에 대해서 소개를 한 시간이었어요. 질문 없으면 좀 일찍 끝낼까요? 네 오늘 여기까지 할게요. 수고하셨습니다.
与会者 1 27:09 这次课程的内容是基本输出对象的属性、点线多边形所具有的各种属性,接下来介绍了与此相关的一些函数。如果没有问题,是否可以提前结束?是的,今天就到这里。辛苦了。

clovanote.naver.com