CG week6.1.2
2025.04.07 Mon PM 1:51 ・ 49Minutes 43seconds
ZHANG YIWEN
CG 第 6.1.2 周 2025.04.07 周一 下午 1:51 · 49 分 43 秒 张一文
Attendees 1 00:02
여기에 그룹 코디네이터 이렇게 이션 과정을
参会人员 1 00:02 在这里小组协调员是这样的过程
Attendees 1 00:09
이런 단체 공간이 있어요. 이런 단체 공간을 지정을 했고
有这样一个团体空间。我们已经指定了这个团体空间
Attendees 1 00:17
하고 싶은 일은 뭘까? 하고 싶은 일이 이 저 간식 공간을 어디로 옮기고 싶은 거예요?
想做什么呢?想把这个零食空间移到哪里?
Attendees 1 00:27
요 관측 공간으로 옮기고 싶은 일을 하는 거죠. 예를 들면 쥐의 로소에 6개의 인자가 들어간다고 했었죠.
6개의 인자가 들어가는데 x 민을 얼마로 줄까? 이거 x 민을 2로 줬다고 할게요.
x 맥스 10 여기가 2 그다음에 여기가 얼마 줄까요?
6 줄까요? 6 26 와이미는 와이미는 y축보다 조금 위에 있는 거니까 여기 얼마를 줄까요?
4로 주고 와 맥스는 8로 줄게요. 2 6 4 8 그다음에 제트 뭐죠?
제트민 제트 맥스죠 제트 맥스 제트 민입니다. 제트민 제트 맥스니까 제트 민이 뒤쪽 평면이죠.
뒤쪽 평면을 얼마로 줄까? 여기서 제트는 이게 저기 한 마이너스 한 10이라고 할까요?
마이너스 10 정도 주고 그다음에 앞쪽 평면은 앞쪽 평면은 얼마를 줄까?
마이너스 한 6 정도로 줄게요. 그러면은 요 점의 좌표는 뭘까?
요 점의 좌표하고 요 점의 좌표는 유우미 자표는 2 콤마 y 자표는 얼마예요?
4 콤마 제트 좌표는 마이너스 6이 되겠죠.
这里是将观测空间转换的工作。例如,之前说过齐次坐标有 6 个参数。有 6 个参数,那么 x 最小值设为多少?假设我们将 x 最小值设为 2。x 最大值为 10,然后这里是多少?是 6 还是 26?y 最小值是多少?因为 y 轴稍微在上方,所以我们将其设为 4,y 最大值设为 8。2 6 4 8。然后 z 是什么?z 最小值和 z 最大值。z 最小值是后面的平面。后面的平面设为多少?假设我们将 z 设为大约负 10。负 10,然后前面的平面设为多少?设为负 6。那么这个点的坐标是什么?这个点的坐标和这个点的坐标,y 坐标是 2,y 坐标是多少?4,z 坐标是负 6。
Attendees 1 01:51
요점의 좌표는 x는 6, y는 8 제트는 마이너스 10이 되겠네요.
6 8 마이너스 10
这个点的坐标是 x 为 6,y 为 8,z 为负 10。6 8 负 10
Attendees 1 02:06
이거를 여기로 옮기려면 어떻게 해야 돼? 어떻게 여기 센터점 어떻게 잡아요?
맨 처음에 센터점 어떻게 잡았지? x m x 맥스의 중간 이거 두 개 더하면 얼마예요?
8 나누기 2안 4죠 4 8 12 나누기 6 하면은 나누기 2 하면 6이죠.
4 콤마 6 콤마 그건 얼만가 마이너스 8이죠. 아마 이 중간점이 뭐가 된다?
4만 6건만 마이너스 8이 된다는 얘기죠. 됐나요?
그럼 이 중간점을 어디로 옮겨야 돼요? 원점으로 옮겨야 되죠.
그럼 맨 처음에 곱해지는 행렬이 뭐지?
与会者 1 02:06 如何将这个移到这里?如何确定中心点?最初如何确定中心点?x m x 最大值的中间,这两个相加是多少?8 除以 2 是 4,对吧?4 8 12 除以 6,除以 2 是 6。4,6,那是多少,减 8。大概这个中间点是什么?意思是 4 和 6 只有减 8。明白了吗?那么这个中心点应该移到哪里?需要移到原点。那么一开始乘的矩阵是什么?
Attendees 1 02:55
4 코마 6 하면 마이너스 8을 원점으로 옮기고 싶어요.
그럼 마이너스 4 마이너스 6 플러스 8 해 주면 되죠.
이거 하면은 원점으로 가겠죠. 그다음에 곱해준 게 뭔가 그다음에 곱해준 거는 이거 x 길이 얼마예요?
엑스 길이 4죠 4분의 1로 나눠줘야겠죠 그래야지 길이가 1이 되죠.
그래서 4분의 1로 나눠주고 y는 4네요. 4분의 1로 나눠주고 z는 이것도 4네 4분의 1로 나눠주고 근데 4분의 1로 나눴더니 길이가 1이 됐죠.
길이 얼마나 더 늘려줘야 돼요? 2로 늘려줘야 되죠.
4분의 1이 4분의 2가 되면 되겠네.
与会者 1 02:55 4 和 6 要将负 8 移到原点。那么就是负 4 负 6 加 8 就可以了。这样就能移到原点。接下来乘的是什么?x 的长度是多少?x 长度是 4,所以要除以 4,这样长度就是 1 了。因此除以 4,y 是 4。除以 4,z 也是 4,除以 4。但是除以 4 后长度变成 1 了。还需要将长度增加多少?需要增加到 2。4 分之 1 变成 4 分之 2 就可以了。
Attendees 1 03:46
0000001 행렬 2개 곱해주면 되겠죠 그다음에 마지막으로 좌표 축이 한 번 뒤집어져야 된다고 했었죠.
제트 좌표 축이 그래서 그건 어떻게 다 곱해주면 되나 여기다가 마이너스 2를 곱해주면 될 거예요.
그러면 이 두 개의 행렬 곱하면은 이 행렬이 하는 역할이 뭐다 이 사용자가 정리한 진육 면체를 어디로 끌고 오는 거예요?
여기로 끌고 온다는 얘기예요. 그래서 실제로 이 점 곱하고 이 점을 여기다 곱하면 어떻게 될까 8 콤마 마이너스 10에 1을 곱해줘야겠죠.
요거 곱하면 어디로 올까요? 계산 할 필요도 없이 요점으로 오게 돼 있어요.
요점으로 요점의 좌표는 얼만가 x는 1 1 y는 1, 제트는 제트가 1이에요.
왜 왼손 잡표기로 바뀌었으니까 그래서 의심 가는 사람들은 6 8 마이너스 11하고 위생률 다 곱해버리면 결과가 뭐다 1 1 1 1이 나오게 될 거예요.
그럼 마찬가지로 요점 요점 요점 요점 요점 요점 6개 점 다 곱하면 이렇게 나오겠죠.
出席者 1 03:46 0000001 将两个矩阵相乘即可。然后最后坐标轴需要翻转一次,对吧。Z 坐标轴,所以那个该如何乘呢?在这里乘以负 2 就可以了。这两个矩阵相乘,这个矩阵的作用是什么?就是将用户整理的六面体拖到哪里。意思是拖到这里。所以实际上将这个点乘以这个点,会怎么样呢?将 8,负 10 和 1 相乘。乘完后会到哪里?不需要计算,已经设定为到这个点。这个点的坐标是多少?X 是 1,1,Y 是 1,Z 也是 1。因为已经变成了左手坐标系。所以有疑问的人将 6,8,负 11 等都乘起来,结果就是 1,1,1,1。同样的,这 6 个点都这样乘,就会这样出现。
Attendees 1 05:01
여기 만약에 여러분이 만약에 이제 삼각형 3점을 그렸고 사각형 4점도 넣었어요.
그럼 이런 점들도 다 어디에 곱해져요? 프로젝션 형으로 곱해지겠죠 프레시 이랑 곱해지면 어디로 잡아 오나
出席者 1 05:01 如果你现在画了一个三角形的 3 个点,还加入了一个四边形的 4 个点。那么这些点都会被什么乘?会被投影矩阵乘,被投影矩阵乘后会被拉到哪里?
Attendees 1 05:19
요 관측 공간 안에서 표현된 점들로 변환이 되겠죠 그 역할을 누가 해준다?
g 오소라는 함수가 명시를 해 주면은 내부적으로 이런 행렬이 만들어진다는 얘기예요.
알겠나요? 잘 한번 따져봐요. 따져보면은 물어본 점도 충분히 이해할 수 있을 거예요.
与会者 1 05:19 这些点将被转换到观测空间内。这是由谁完成的?g 是通过函数来指定的,内部会创建这样的矩阵。明白了吗?好好想一想。仔细思考,你就能充分理解所提到的问题。
Attendees 1 05:50
원근 투형 어떻게 한다고 그랬나? 원근 투영 원근 투형은 관측 공간의 모양이
与会者 1 05:50 透视投影是怎么进行的?透视投影,透视投形是观测空间的形状
Attendees 1 06:01
이렇게 정리를 하는 거야. 이렇게 생긴 애 이렇게 생긴 애를 어떤 공간으로
这样整理它。这样看起来的东西,这样看起来的东西到什么空间。
Attendees 1 06:11
제트 축은 저로 반대로 나가네요.
与会者 1 06:11 Z 轴向我的反方向延伸。
Attendees 1 06:18
x y z 축으로 이 공간을 이 공간으로 변경시킬 거예요.
그러다 보면은 요 앞에 4 점은 어디로 가나 요 앞에 4점으로 와야겠죠 저 뒤에 4점은 이 뒤에 4점으로 와야겠죠.
그러다 보면 찌그러드는 게 어디가 더 많이 찌그러들어요?
뒤쪽이 더 많이 찌그러들죠. 그럼 여기에 만약에 뭔가 도형이 있었다고 하면은 뒤쪽 잡도가 더 많이 찌그러들겠죠.
그러면 무슨 효과가 생기나? 이제 여기서 이 공간에서는 원근 효과가 생기는 거죠.
그래서 얘를 얘로 변환하는 프로젝션 행렬을 찾는 게 남은 시간의 목표예요.
与会者 1 06:18 我们将通过 x、y、z 轴将这个空间转换到这个空间。这样,前面的 4 个点将移动到前面的 4 个点,后面的 4 个点将移动到后面的 4 个点。在这个过程中,哪里会更多地变形?后面会更多地变形。如果这里有一个图形,后面的部分会更多地变形。那么会产生什么效果呢?在这个空间中,现在会产生透视效果。因此,找到将这个空间转换到另一个空间的投影矩阵是接下来的目标。
Attendees 1 07:10
직교 투형은 조금 단순했는데 왜 이렇게 숨이 차지
与会者 1 07:10 正交投影是相当简单的,为什么现在感到如此吃力?
Attendees 1 07:22
원근 투영은 조금 복잡할 수가 있어요.
第 1 位参与者 07:22 透视投影可能会有点复杂。
Attendees 1 07:28
오픈제에서 원근 투영인 거는 이거 아까 직교 투영 행렬 이렇게 관측 공간을 지정하면은 내부적으로 이러한 행렬이 만들어지고 유행렬이 하는 역할은 얘를 이렇게 변환을 해서 사실 얘는 직교 투형에서는 XY 좌표가 그냥 전체적으로 비례식에 의해서만 바뀌면 되는 거죠.
앞쪽에 있든 뒤쪽에 있든 크게 변화가 없어요. XY 좌표가.
근데 이제 관측 공간에서는 원근투형에서는 관측 공간을 이렇게 지정하고 내부적으로는 이제 배우겠지만 이런 행렬이 만들어져요.
이런 행렬이 만들어지면 이 행렬이 하는 역할은 이 공간을 이런 모양의 공간으로 바뀌다 보니까 당연히 안에 있던 도형들도 뒤쪽은 많이 찌그러지고 앞쪽은 조금 찌그러지고 해서 원근 투영의 효과를 만들어 낸다는 거죠.
원금 투형을 이해하기 위해서는 포모지니어스 코디네이트를 조금 확장을 시켜야 될 거예요.
우리가 이전에 배웠던 동차 좌표는 무슨 공간에 서 있었던 거예요?
어파인 공간에 서 있었던 거죠.
第 1 位参与者 07:28 在 OpenGL 中,透视投影是这样的。就像刚才的正交投影矩阵,当指定观察空间时,内部会生成这样的矩阵。这个矩阵的作用是对其进行变换。在正交投影中,XY 坐标只是通过比例关系发生变化,无论物体在前面还是后面,XY 坐标变化都不大。而在观察空间的透视投影中,当指定观察空间并在内部生成这样的矩阵时,由于空间变换为这种形状,里面的图形也会发生变形,后面的部分会更多地扭曲,前面的部分会稍微扭曲,从而产生透视投影的效果。要理解透视投影,需要稍微扩展齐次坐标。我们之前学习的齐次坐标是在什么空间中的?是在仿射空间中。
Attendees 1 08:36
어파인 공간에서 XY 마지막이 0이면은 이건 뭐라고 했어요?
벡터라고 했죠 XY 1이면은 점이라고 했죠. 그러면은 2가 되면 어떻게 될까 이런 건 정의를 안 했죠.
제가 2가 되는 거는 정의를 안 했는데 이제 이거를 어파인 공간이 아니라 원근 투영 공간 프로젝티브 스페이스에서까지 확장을 하면은 이런 2가 되는 것도 정의가 돼요.
어떻게 정의할 수 있을까? 요 2는 보기 싫죠. 2는 보기 싫으니까 이거를 1로 만들어 줄 거예요.
이 점을 마지막 좌표를 1로 만들어주면 어떻게 될까요?
다 2로 나눠주면 되겠죠. x 나누기 2 와 나누기 2 마지막 좌표가 뭐가 돼?
1이 되는 거죠. 그래서 원근 투영 공간에서는 후보 지니어스 동차 좌표가 마지막으로 여기 마지막 좌표로 나눠준다는 얘기예요.
出席者 1 08:36 在仿射空间中,如果 XY 最后是 0,这是什么?我们说它是向量。如果 XY 是 1,那就是点。那么如果是 2 会怎样?我们之前没有定义这个。我没有定义 2 的情况,但是如果将其扩展到投影空间而不是仿射空间,那么 2 也可以被定义。我们该如何定义呢?这个 2 看起来很不舒服,所以我们要把它变成 1。如果我们将这个点的最后坐标变成 1,会发生什么?我们可以把所有的 2 都除掉。x 除以 2 和除以 2,最后的坐标会变成什么?变成 1。所以在投影空间中,候选的齐次坐标最后需要除以这个坐标。
Attendees 1 09:41
그거에 대해서 한번 소개를 하면은 원근 투영을 위한 동체 좌표 우리가 알고 있던 동체 좌표를 확장을 시키겠다는 얘기고 원근 투영 공간에서 마찬가지로 벡터는 벡터는 마지막 좌표로 0 값을 갖는다.
이건 어파인 공간이랑 동일하네요. 그렇죠 점은 점은 마지막 좌표가 업하기 공간에서는 1인 값을 가졌는데 업하기 공간에서는 1위를 가졌는데 원군 투여 공간에서는 그냥 0이 아닌 값만 갖는다.
그래서 예를 들어서 2차원 원금 공간을 우리가 살펴보면은 여기 w 좌표를 갖게 되는 거예요.
이제 2차원이지만 동차 좌표니까 w x와 y와 좌표가 하나 더 있어야겠죠.
그래서 2차원 원금 구간이니까 스 와 w라고 가정을 할게요.
그럼 이 w는 얘를 어떻게 해준다? w로 나눠주면 마지막 좌표가 1이 되겠죠.
그래서 x 나누기 w y 나누기 w 얘네들은 다 같은 점이에요.
같은 점 예를 들면 6 콤마 9 콤마 3은 이거 얼마로 나눠주면 되나 3으로 나눠주죠.
出席者 1 09:41 关于这一点,我们要介绍一下,扩展我们已知的齐次坐标用于投影变换。在投影空间中,向量的最后坐标保持为 0 值,这与仿射空间是一样的。对于点,在仿射空间中最后坐标是 1,而在投影空间中只要是非零值。例如,在二维投影空间中,我们会有一个 w 坐标。既然是二维,但是是齐次坐标,那么还需要一个坐标。所以在二维投影空间中,我们假设为 s 和 w。那么这个 w 怎么处理呢?用 w 除,最后的坐标就会变成 1。所以 x 除以 w,y 除以 w,它们都是同一个点。例如 6,9,3,我们可以用 3 来除。
Attendees 1 10:56
3으로 나누면 6이 뭐가 되나 2가 되고 9는 3이 되고 3은 1이 되겠죠.
예를 들면 1 콤마 1.5 콤마 0.5라는 좌표가 있어요.
얘는 얼마로 나눠줘야 돼요? 0.5로 나눠줘야겠죠 0.5로 나눠주면은 0.5는 1이 되고 1.5는 뭐가 되나 0.5로 나눈다는 얘기는 2 곱한다는 얘기죠.
1.5는 3이 되고 1은 2가 되네요. 그렇다면 결국 얘하고 얘하고 어떤 어떻다는 얘기예요?
같다는 얘기죠 같다는 얘기예요. 6 93이라는 좌표와 1 1.5 0.5하고 같다는 얘기예요.
2 3이라고도 같고 또 뭐 하고도 같을까 4 6 2하고도 같죠?
맞나요? 또 8 12 4하고도 같네요. 자 이런 점들이 다 같은 점이라는 얘기예요.
어디서는 원근 투형 공간에서는 그럼 이걸 기하학적으로 봤을 때 어떤 점들이 다 같은 점들일까요?
원점에서 한 직선 위에 있는 애들은 다 같은 점이 된다는 얘기예요.
그래서 기하학적으로 표현을 하면은 근데 여기서 또 벡터는 여전히 어때요?
마지막 좌표가 0인 애들이죠.
与会者 1 10:56 如果用 3 除,6 会变成 2,9 会变成 3,3 会变成 1。例如,有一个坐标 1,1.5,0.5。它应该除以多少?当然是除以 0.5。除以 0.5 后,0.5 会变成 1,1.5 会变成什么?除以 0.5 意味着乘以 2。1.5 会变成 3,1 会变成 2。那么,这是什么意思?意思是它们是相同的。这是说 6,9 这个坐标和 1,1.5,0.5 是相同的。也和 2,3 相同,还和 4,6,2 相同,对吗?还和 8,12,4 相同。这些点都是相同的点。在透视投影空间中,从几何角度来看,哪些点会是相同的点?意思是,所有在原点到同一直线上的点都是相同的点。从几何角度来说,向量呢?仍然是最后一个坐标为 0 的点。
Attendees 1 12:18
이쪽을 x축이라고 표현하고 이쪽을 y 축이라고 표현하고 이쪽을 w 축이라고 한번 표현을 해볼게요.
그럼 벡터들은 어디에 살까요? 벡터들은 벡터들은 w 값이 다 0이죠.
벡터들은 w 값이 다 0이니까 이 녹색 평면에만 이 녹색 평면에만 살고 있는 애들이 벡터예요.
그다음에 점들은 어떤 애들이에요? 점들은 점들은 w가 0이 아닌 애들이죠.
w가 0이 아니면은 w가 1이라고 하면은 어떤 평면이에요?
이런 평면이죠. 여기서 이 평면에서 보면은 6 콤마 9콤마 3은 어디 있는 애예요?
6 콤마 9콤마 3이니까 위에 떠 있는 애죠. 근데 이거 나눠줘야겠죠 3으로 그럼 얼마가 되나?
2 콤마 3 콤마 1이 되죠. 3으로 나눈다는 얘기는 원점으로 프로젝션 시켜서 좌표를 w 좌표를 1로 만들어준다는 얘기죠.
그럼 이게 여기 있던 애가 어떻게 되나 쭉 떨어져서 이로 떨어지죠.
그다음에 요 아까 1 콤마 1.5 콤마 0.5는 어디에 있는 애예요?
w JP가 0.5니까 요 평면 밑에 있는 애죠.
与会者 1 12:18 这边我们称为 x 轴,这边称为 y 轴,这边我们尝试称为 w 轴。那么向量住在哪里?向量的 w 值都是 0。因为向量的 w 值都是 0,所以它们只存在于这个绿色平面上。那么点是什么样的?点是 w 不为 0 的点。如果 w 为 1,那是什么平面?就是这样的平面。在这个平面上,6,9,3 在哪里?因为是 6,9,3,所以它悬在上方。但是需要除以 3,那么会变成多少?会变成 2,3,1。除以 3 意味着投影到原点,将 w 坐标变为 1。那么原来在这里的点会如何?会远离并落到这里。然后之前的 1,1.5,0.5 在哪里?因为 w 是 0.5,所以它在这个平面下方。
Attendees 1 13:31
0.5로 나눠준다는 얘기는 w를 1로 맞춰준다는 얘기죠.
그럼 얘는 어디로 변화 위로 쑥 가서 이 빨간 점이 되겠죠.
아까 4 콤마 6콤마 2는 어디 있는 애인가? 4 콤마 6 콤마 2는 한 여기 어디 있는 애일 거예요.
얘는 2로 나눠주면 또 이 정도로 갈 거예요. 그 얘기는 원금 투영 공간에서는 원점에서 원점에서 이쪽 직선 위에 있는 모든 점들은 다 어디로 프로젝션이 돼요?
요 점으로 프로젝션 되죠. 다 같은 점들이라는 얘기예요.
다 같은 점 원점에서 이쪽 직선으로 있는 모든 점들은 또 다 같은 점들이고 벡터는 어디에서나 벡터는 벡터는 갈래야 갈 수 없죠.
벡터는 넘어가야 점이 될 수 없어요. 왜 기울기가 쭈르르 내려와가지고 어디에 딱 맞물렸기 때문에 그리고 wol 0인 평면에 있기 때문에 벡터는 자기가 아무리 날 쪄봤자 위로 올라갈 수는 없죠.
업하이 공간에서는 여기 w가 1이라는 것만 항상 가정해서 이렇게 막 같은 거죠.
与会者 1 13:31 除以 0.5 意味着将 w 调整为 1。那么它将会向上移动,变成这个红点。之前的 4、6、2 在哪里?4、6、2 应该在这里的某个位置。如果除以 2,它将会到这个位置。这意味着在原始投影空间中,从原点到这条直线上的所有点都将被投影到哪里?它们都会投影到这个点。也就是说,它们都是相同的点。从原点到这条直线上的所有点都是相同的点,而向量无论在哪里都是向量,它不能改变。向量不能成为点,因为斜率已经完全下降并且与某处完全吻合,并且因为它在 w=0 的平面上,所以向量无论如何尝试,都无法向上移动。在齐次空间中,总是假设 w=1,就是这样。
Attendees 1 14:42
딱 봐도 이거 뭐 하고 관련 있을 거 아니야 원점이 투영 참조점이 되고 뭔가 프로젝션 하는 것과 비슷하죠.
그래서 원분 투영을 위한 동차 좌표 물론 3차원으로 표현을 하면은 3차원으로 예시를 들면 더 좋았을 텐데 x y z w 하면은 그릴 수가 없죠.
그릴 수가 없어가지고 2차원으로 표시를 한 거예요.
2차원으로 예제를 든 거고
与会者 1 14:42 一眼就能看出这与什么有关,原点成为投影参考点,这与某种投影方式很相似。因此,对于原点投影,使用齐次坐标。当然,如果用三维表示会更好,如果是 x、y、z、w,就无法绘制了。无法绘制,所以用二维表示,举了一个二维的例子。
Attendees 1 15:17
그다음에 여기 이거를 3으로 나누고 이거를 0.5로 나누고 일반화시켜서 얘를 w로 나누는 것을 우리가 퍼스펙티브 디비전이라고 해요.
원군 나눗셈 퍼스펙티브 디비전
接下来,我们将其除以 3,再除以 0.5,并进行归一化,然后用 w 除以它,我们称之为透视除法。原始的除法透视除法
Attendees 1 15:37
알겠나요? 그러면 간단한 예를 한번 들어볼까요?
明白了吗?那么,让我们举一个简单的例子。
Attendees 1 15:45
단순한 원금 투영 모델 투형 참조점은 여기 우리 지금 관측자 VC만 있는 거죠.
왜 모델 뷰 변환이 끝나면 뭐만 남은 거예요? 뷰 코디네이트만 남게 되는 거죠.
관측 자크계의 원점으로 투영된다고 가정을 할게요.
점이 그다음에 관측 평면은 우리가 바라보는 이미지 평면 이미지 평면은 어디 있다고 가정할 거냐 하면은 제트 있고 제트 맥스라고 가정을 할게요.
평면에 이 방정식이 예를 들면 제트 맥스는 뭐가 될 수 있나 이쪽이 제 방향이니까 마이너스 5 정도 하면 되겠죠.
아니면 마이너스 1 해도 되고 그래서 이런 평면이 있다고 가정을 할 거고 그다음에 그러면은 요 p라는 점이 이 평면으로 딱 투영됐을 때 뭐가 바뀔까요?
이거는 제트 좌표는 항상 뭐가 될까 쭉 추향이 되면은 제트 좌표는 제트 맥스가 되겠죠.
당연히 그다음에 x하고 y 좌표는 x하고 y 좌표는 어떻게 될 것 같아요?
바뀌겠죠 x하고 y 좌표는 이렇게 바뀔 거예요. 그래서 얘는 XP 왜 XP라고 했을까?
与会者 1 15:45 简单的原始投影模型 投影参考点就在这里,我们现在只有观察者 VC。模型视图变换结束后剩下什么?只剩下视图坐标。假设点投射到观察坐标系的原点。接下来,观察平面是我们所看的图像平面,图像平面假设在哪里?在 Z 轴上,假设为 Zmax。平面方程,例如 Zmax 可以是什么?因为这是我的方向,所以可以是负 5,或者负 1。假设有这样一个平面,那么当点 P 投射到这个平面时会发生什么变化?Z 坐标将始终是什么?当它一直延伸时,Z 坐标将是 Zmax。那么 x 和 y 坐标会怎样?x 和 y 坐标将会改变。这就是为什么叫 XP?
Attendees 1 17:00
프로젝션 된 x 좌표 프로젝션 된 y 좌표 그다음에 제 자트는 제트 맥스가 되겠네요.
그래서 구하고 싶은 거는 이 XP yp를 구하고 싶은 거죠.
그래서 이게 아주 단순한 투영 모델인데 이게 어떻게 구할 수 있을까 비례식을 쓰면 구할 수 있대요.
여기가 x 축이고 여기가 y축이니까 여기가 축이니까 y축은 지금 어디로 나가고 있는 거예요?
여기서 이렇게 y축이 나가고 있는 거죠. 즉 앞에 상황을 위쪽에서 본 거예요.
위쪽에서 이거를 눈을 이제 위쪽에서 이렇게 바라본 상황이에요.
그쪽에서 바라본 상황이면은 어떤 비례식이 성립할까?
요 평면이 제프리크 제트 맥스가 요 평면이죠. 이 평면이고 그다음에 p점의 좌표가 여기 있었고 그러면은 어떤 비례식이 성립하냐면은
与会者 1 17:00 投影的 x 坐标,投影的 y 坐标,然后 Z 轴将是 Zmax。我们想要得到的是 XP 和 yp。这是一个非常简单的投影模型,但如何计算呢?据说可以使用比例式。这里是 x 轴,这里是 y 轴,这里是轴,y 轴现在朝向哪里?y 轴是这样朝外的。也就是说,这是从上方看的情况。从上方用眼睛这样看的情况。如果从那个角度看,什么比例式会成立?这个平面是 Zmax 平面,这是平面,然后 P 点的坐标在这里,那么什么比例式会成立呢?
Attendees 1 18:08
제트 대 x는 제트 대 x는 뭐예요? z는 이기니까 제트죠 제트 대 x는 어떤 그 길이가 x죠?
제트 대 x는 뭐 데 볼까? 제트 맥스 대 여기 제트 맥스 맞아요 제트 맥스 대 요게 뭘까 XP죠 프로젝션 된 XP 여기 색깔 빨간 거 요거 빨간 거 요거 파란 거 요거 파란 거 이거예요.
예대 얘는 얘대 예로 프로액션에서는 당연히 비례식이 성립하죠.
그래서 제트 대 x는 제 x XP 그러면은 외향의 곡과 내향의 곡이 같으니까 우리가 찾고자 하는 건 뭐예요?
XP죠 XP는 어떻게 나올까 이렇게 곱한 것과 이렇게 곱한 거 같으니까 XP는 이 두 개 곱한 거를 제트로 나눠주면 되겠네요.
그래서 이 두 개 곱한 거를 제로 나눠주면 XP의 좌표가 나오고 그다음에 이번에는 이거 어디서 본 건가 y를 구해야 되는 거죠.
우리 y를 구한 거니까 y가 이쪽 튀기고 z가 이쪽 튀니까 x가 이쪽으로 나오겠네요.
옆에서 본 거예요. 여기서는 어떤 비례식이 성립할까?
听众 1 18:08 z 轴上的 x 是什么?z 是这个,所以是 z 轴。x 轴上的长度是什么?让我们看看 z 轴最大值。这是 z 轴最大值,对吗?这是什么?XP,这是投影的 XP,这里是红色的,这是红色的,这是蓝色的,这是蓝色的。在投影中,比例关系当然是成立的。所以 z 轴上的 x 是 x 的 XP。由于外曲线和内曲线相同,我们要找的是什么?是 XP。XP 如何计算?看起来是这样乘积和这样乘积,所以 XP 是将这两个相乘后除以 z。因此,将这两个相乘后除以 z,就得到了 XP 的坐标,然后接下来是 y 的坐标。我们已经求出了 y,所以 y 从这边突出,z 从这边突出,x 就从这边出现。这是从侧面看的。这里会成立什么比例关系?
Attendees 1 19:22
z 대 y는 또 요 길이 얼마예요? 여길 똑같이 제트 맥스죠 제트 맥스 데 요 길이는 yp가 되네요.
프로젝션 된 y의 좌표 그래서 뭐였나 제때 y가 제트 대 y는 z 맥스의 yp, yp의 좌표를 구하는 거니까 yp는 y하고 z 맥스를 곱한 것을 뭘로 나눠주면 되나요?
제트로 나눠주면 되겠죠. 그래서 y하고 제트 맥스를 곱한 거를 제로 나눠주면은 yp의 좌표가 나오고 그다음에 제트피는 항상 얼마가 나온다고 했어요.
짐 x가 나온다고 했죠. 그거 다 구했네. 요게 요게 답이죠.
요게 이게 답이고 근데 이렇게 쓰는 것보다 원근 투형 공간에서는 얘하고 여기 어떤 값이나 곱해줘도 상관없죠.
지금 x y z w가 1인데 w에다가 임의의 값을 곱해줘도 되죠.
얼마 값을 곱할까? 여기 분모가 제트가 있죠. 분모가 제트가 있으니까 z를 곱하면 좋은데 마이너스 제트를 한번 곱해볼게요.
마이너스 z를 그러면은 w 값은 뭐가 되나 마이너스 제트가 되고 얘는 마이너스 z 곱하기 제트 맥스가 되겠네요.
听众 1 19:22 z 轴上的 y 长度是多少?这里同样是 z 最大值。z 最大值的这个长度是 yp。这是投影的 y 坐标。那么,z 轴上的 y 是 z 最大值的 yp,要求 yp 坐标,yp 是 y 乘以 z 最大值,除以什么?除以 z。所以将 y 乘以 z 最大值后除以 z,就得到了 yp 坐标,然后 z 总是多少?x 会出现,对吧?我们都求出来了。这就是答案。这是答案,但在透视投影空间中,这里的任何值与此相乘都无所谓。现在 x、y、z、w 都是 1,可以给 w 乘任意值。乘以多少?这里分母有 z,分母有 z,所以乘以 z 会很好,让我们试着乘以负 z。那么 w 值会是什么?负 z,这里是负 z 乘以 z 最大值。
Attendees 1 20:50
그다음에 얘는 이제 분모가 사라져서 제 맥스 곱하기 y의 마이너스가 되고 마이너스 z 맥x 곱하기 x가 되네요.
이렇게 쓰나 이렇게 했으나 지금 여기 세 줄 표시가 나왔다는 얘기는 뭐예요?
동치라는 얘기죠. 어느 공간에서 원분 투영 공간에서
接下来,分母消失了,变成了负 z 乘以 x,减去 x 乘以 y 的负号。这样写或那样写,现在这里出现了三行表示是什么意思?这意味着等价。在某个空间中,原点投影空间中
Attendees 1 21:12
원금 투여 공간에서는 결국 결국 어떤 점들이 다 이 점이나 이 점이나 여기 있는 점이나 다 똑같다는 얘기예요.
근데 왜 이런 형태를 얻었을까 왜 이런 형태를 이런 형태를 얻은 이유는 이게 입력이고 이게 출력일 때 요 입력으로부터 아니 이제 아니지 그 x y z가 입력이고 이게 출력일 때 이 행렬을 이제 만들기 위한 거예요.
이렇게 쓴 거는 이 행렬하고 x y z 2를 곱하면 저게 나오나 한번 볼까요?
이렇게 한번 곱하면 어떻게 돼요? 마이너스 제트 맥스 곱하기 x가 나오죠.
그래서 이게 나오고 이렇게 이렇게 곱하면 마이너스 제트 맥스 곱하기 y가 되네.
이렇게 곱하면은 마이너스 z x 곱하기 z가 되죠.
그다음에 이렇게 곱하면은 뭐가 되나 여기 이게 중요하대.
마이너스 제트가 되죠. 마이너스 2가 그래서 결국 투영점은 얜데 얘는 이렇게도 표현이 가능하고 얘는 입력점인 x y z 하고 이런 행렬을 곱해주면 나올 수 있다는 얘기예요.
이 행렬이 바로 뭐 하는 행렬인가?
在原点投影空间中,最终所有的点都是相同的,无论是这个点还是那个点,或者这里的点。那么为什么会得到这种形式呢?得到这种形式的原因是,当这是输入,这是输出时,从这个输入,不是,不对,x y z 是输入,这是输出,是为了创建这个矩阵。这样写是为了当将这个矩阵与 x y z 2 相乘时,看看会得到什么。如果这样乘,会怎样?会得到负 z 乘以 x。所以会得到这个,如果这样乘,会得到负 z 乘以 y。这样乘会得到负 z 乘以 x 乘以 z。然后这样乘会得到什么,这很重要。会得到负 z。负 2。所以投影点是这样,这也可以表示,当将输入点 x y z 与这个矩阵相乘时就会得到。这个矩阵到底是做什么的?
Attendees 1 22:38
단순 원군 투영을 감당하는 행렬이 되는 거죠. 예제를 한번 들어볼까요?
관측 평면이 마이너스 1이라고 가정을 할게요. 마이너스 1 그럼 마이너스 2니까 여기 있겠죠 여기 있는 거고 앞에 공식에 의하면은 앞에 공식에 의하면 어떻게 나온다고 했나 이렇게 나온다고 했으니까 제트 맥스가 마이너스 1인 거죠.
얘는 플러스 1 플러스 1 플러스 1 되겠네. 맞나요?
그리고 여기만 마이너스 1 나오겠죠. 그래서 앞에 공식에 의한 행렬은 이게 나와요.
여기 이게 나오게 되고 이거 하고 어떤 점 2 코마 1 코마 마이너스 5라는 점을 한번 곱해볼게요.
이 컵 마일 커면 마이너스 5 그러면 이 컵 마일 커마 마이너스 5인데 얘는 점이니까 1을 곱해야겠죠.
2개 곱했더니 유행 결과 정 곱했더니 이 콤마 1 컴 마이너스 5 콤마 5가 나왔대요.
그러면 이거 w 좌표가 지금 o가 아닌 1이 아닌 거죠.
그럼 이거 뭐 해준다? 퍼스펙티브 디비전 한다고 했죠.
这是一个成为单一原始投影矩阵的例子。让我们来看一个例子?假设观测平面是负 1。那么负 1 就是负 2,所以它将在这里,在这里,根据前面的公式,按照之前说的方式,z 最大值是负 1。这个是正 1,正 1,正 1。对吗?然后这里只会出现负 1。所以根据前面的公式,矩阵就是这样的。这里会出现这个,如果我们将点(2, 1, -5)乘以这个矩阵。如果这个点是(-5),那么因为它是一个点,所以需要乘以 1。乘完之后,结果是(1, -5, 5)。此时 w 坐标不是 0,而是 1。那么这是什么?透视除法,对吧。
Attendees 1 23:45
그리고 뭐로 나눠주면 되나 뭐로 나눠주면은 0.4 0.2 마이너스 1 1 바로 이게 뭐가 되나 얘 2 2 마이너스 이상 평면으로 투영됐을 때의 좌표가 나온다는 얘기예요.
그래서 투영 행렬이 하는 역할은 이게 이제 핵심적인 역할을 하는 거죠.
원본 투영 좌표를 만들어내고 마지막 단계에서 뭘 해줘야 된다 퍼스펙티브 디비전으로 해서 마지막 좌표를 1로 만들어주면은 우리가 원하는 좌표 공간으로 가져온다는 얘기죠.
那么用什么来除呢?0.4, 0.2, -1, 1,这就是什么?当投影到二维平面时的坐标。所以投影矩阵的核心作用就是这个。创建原始投影坐标,最后一步是什么?通过透视除法将最后的坐标变为 1,这就是将我们想要的坐标空间带入的意思。
Attendees 1 24:26
여기 플레인의 위치가 바뀌면 뭐가 바뀔까 플레인의 위치가 바뀌면은 이게 만약에 제 이골 마이너스 2라고 가정을 할게요.
그럼 뭐가 바뀔까 여기가 여기는 안 바뀌죠 마이너스 a는 여기가 뭐가 뭘로 바뀌어?
222로 바뀌겠죠 e2 2로
如果这里平面的位置发生变化,会发生什么?假设这里是负 2,那么会发生什么变化?这里不会变化,负 a 在这里会变成什么?会变成 22,e2 变成 2。
Attendees 1 24:50
여기가 만약에 우리 어파인 변환에서는 어파인 변환에서는 밑에 형이 다 뭐였어요?
항상 000 1이었죠 0001이었기 때문에 얘가 첫 번째 축 벡터, 두 번째 축 벡터, 세 번째 축 벡터 마지막이 원점으로 해서 좌표기를 정리할 수 있다고 했죠.
파인 변화에서는 근데 원군 투영 변화에서는 그런 게 안 돼요.
완전히 좀 다른 개념이에요.
在仿射变换中,底部总是什么?一直是 0001,因此可以通过第一轴向量、第二轴向量、第三轴向量和最后的原点来整理坐标。但在透视投影变换中,情况完全不同,这是一个完全不同的概念。
Attendees 1 25:19
여기가 마이너스 1이 나온다는 게 이제 중요한 거죠.
원급에서는
这里减 1 出现是很重要的。在原始坐标中
Attendees 1 25:29
그래서 우리가 지금까지 유도해낸 공식이 이거네.
요거 요거 마이너스 제트 맥스 마이너스 제트 맥스 마이너스 제트 맥스 마이너스 1 근데 요 행렬하고 곱했더니 제 값이 다 뭐가 돼요?
제트 값이 다 제트 맥스로 바뀌어버리죠. 그러면 3차원 공간에 있는 좌표들이 이행렬하고 곱해지면 이렇게 되면은 제 값이 제 값을 잃어버리는 거죠.
제 값을 어떻게 보면 깊이 값을 잃어버린다고 생각해도 되겠죠.
그래서 얘를 조금 개선을 할 거예요. 개선 조금 개선을 할 건데 원금 투영 행렬 현재까지 구한 원금 투영 행렬의 문제점은 기피 정보를 소실한다.
왜 투영된 z의 값은 다 제 맥스가 되기 때문에 그럼 어떻게 해 주면 좋을까?
우리 아까 여기 관측 공간 보면은 제트 맥스가 앞에 있는 걸 거고 제트 민이 어디에 있는 걸 거 같아요?
뒤에 있는 거겠죠. 제일 작은 애 제트민 제트 맥스가 나왔는데 제트 값도 변화를 시켜주고 싶어요.
所以我们现在推导出的公式就是这个。这个,这个减去 Z 最大值减去 Z 最大值减去 Z 最大值减去 1。但是当我们与这个矩阵相乘时,Z 值会发生什么变化?Z 值全部变成了 Z 最大值。这意味着三维空间中的坐标在与这个矩阵相乘后会丢失其原始值。可以说是丢失了深度信息。所以我们将稍微改进一下。稍微改进,当前得到的原始投影矩阵的问题是会丢失深度信息。为什么?因为投影后的 Z 值都变成了 Z 最大值。那么我们该如何改进呢?看看我们刚才的观测空间,Z 最大值在前面,Z 最小值在哪里?显然在后面。最小的 Z,Z 最大值已经出现了,我们还想改变 Z 值。
Attendees 1 26:34
어떻게 제트 민에 해당하는 애들은 뭘로 1 값으로 갖게 되도록 하고 제트 맥스에 해당하는 값은 마이너스 1 값을 갖도록 해주고 싶은 거예요.
이거 순간적으로 제트 좌표가 바뀌었네요. 그러면 뒤집어졌죠 여기가 제2 좌표인데 여기는 이제 젝스 와프가 이렇게 바뀌겠네 위에서 본 거예요.
지금 x축 y축 제트 측 위에서 본 건데 관측 공간의 앞쪽 평면 뒤쪽 평면 있었죠.
근데 깊이 값을 다 잃어버리기 때문에 관측 공간의 앞쪽 평면이 마이너스 1이 되도록 하고 관측 공간의 뒤쪽 표면이 1 값을 갖도록 바꿔주겠다는 얘기예요.
그러면 이렇게 바꾸기 위해서는 투영된 x 좌표하고 y 좌표는 바꾸면 돼요 안 돼요?
안 되겠죠? 투영된 요 젝스 좌표만 여기를 a b라고 넣고 원래 여기는 뭐였어요?
마이너스 x는 x였죠 근데 이거를 나 얘는 포기할 거야 얘는 포기하고 여기를 a라고 넣고 여기를 b라고 넣을 거예요.
그리고 요 ab 값을 새로 정하겠다는 얘기예요.
与会者 1 26:34 我想让对应于 Z 最小值的那些值具有 1 的值,而对应于 Z 最大值的值具有-1 的值。瞬间 Z 坐标发生了变化。那么就翻转了,这里是第二坐标,现在 X 轴、Y 轴、Z 轴从上方看。现在是从上方看观测空间的前平面和后平面。但是由于失去了所有的深度值,所以我们希望将观测空间的前平面变为-1,后平面变为 1。为了这样做,需要改变投影的 X 和 Y 坐标吗?不行。原来这里是什么?负 X 就是 X,但我将放弃这个,放弃这个,并将这里称为 a,这里称为 b。然后重新确定这些 a 和 b 值。
Attendees 1 27:45
ab 값 새로 정할 건데 보면은 여기를 m이라고 놓으면은 x y z 곱해지면 어떻게 돼요?
이렇게 이렇게 이렇게 나오겠죠. 그래서 마이너스 제로 마이너스 제로 나눠주면은 x 좌표하고 y 좌표는 그대로 우리가 투영된 좌표 그대로 가질 수가 있어요.
그렇죠 근데 마이너스 제로 나누면 얘는 이렇게 되네요.
요 값이 어때야 돼요? 이 값이 마이너스 z 분의 a z 플러스 b에서 미지수는 뭔가 a하고 b죠 a하고 b a하고 b 값을 잘 결점을 찾아주면은 어떻게 찾아줘야 되나 마이너스 z 분의 a z 플러스 b는 제가 제트 맥스일 때는 이 값이 얼마가 나와야 돼요.
제가 제트 맥스니까 파란 애죠. 파란 애일 때는 얼마가 나오도록 마이너스 1 값이 나오도록 해주고 제가 제품 이일 때 이게 얼마가 나오도록 1 값이 나오도록 a하고 b 값을 결정을 해주겠다는 얘기예요.
与会者 1 27:45 要重新确定 a 和 b 值,如果我将这里称为 m,那么 x、y、z 相乘会怎样?这样,这样,这样出来。所以除以负零和负零,我们可以保持 X 和 Y 坐标为投影坐标。但是除以负零时,它会变成这样。这个值应该是什么?它应该是-z 除以(az + b),未知数是 a 和 b。通过找到 a 和 b 的适当值,当 Z 为最大值时,这个值应该是多少?当 Z 为最大值时,也就是蓝色部分,应该使其变为-1,当 Z 为最小值时,使其变为 1,这就是我要确定 a 和 b 值的方法。
Attendees 1 28:53
이거는 그냥 우리 중학교 때 배웠던 2차 방정식이나 마찬가지죠.
这就像我们中学时学过的二次方程一样。
Attendees 1 29:03
마이너스 제트 분의 a z 더하기 b
减去 Z 除以 a 的 Z 加上 b
Attendees 1 29:19
제트에다 제트 맥스를 집어넣으면은 제트에다 얼마 집어넣는다 제트 맥스를 집어넣으면은 이 값이 얼마가 나오도록 얼마 나와야 된다고 그랬어요.
마이너스 1이 나와야 된다고 했죠. 그다음에 재테크 체크 민 집어넣으면은
与会者 1 29:19 如果在 Z 轴上放入 Z 最大值,那么放入 Z 轴上的这个值应该是多少,Z 最大值放入后,这个值应该是多少。应该出现负 1,对吗?然后如果再放入重新检查...
Attendees 1 29:47
이 값이 얼마 나오도록 1 나오도록 미지수는 누구예요?
미지수 미지수는 a하고 b죠. 제트 맥스 제트 미는 다 이제 나중에 입력을 받는 거죠.
미지수가 2개고 방영식이 2개니까 이거는 2원 1차 연립 병정식이죠.
그래서 ab 값 구하면은 a를 이렇게 잡아주고 b를 이렇게 잡아주면은 바로 이 조건을 만족시킨다는 얘기예요.
그러면 우리가 구한 원금 투영 행렬이 앞에 처음에는 이거였는데 이제 업그레이드가 되는 거예요.
뭘로 얘로 업그레이드가 되는 거죠? 그래서 마이너스 제트 맥스 마이너스 제트 x 마이너스 1은 그대로고 a 값이 예로 b 값이 예로 바뀌게 되면은 투영된 좌표도 구할 수 있을뿐더러 투영시키면서 어떤 값도 유지가 되는 거예요.
제 값도 유지를 하겠다는 얘기예요. 얼마부터 얼마 사이의 범위로 마이너스 1부터 플러스 1 사이의 범위로 2차원 이미지 평면으로 투영하면은 XY 좌표만 중요하지 z 값이 왜 중요해요?
물어볼 수도 있죠. 왜 중요할까?
与会者 1 29:47 这个值应该出现多少,出现 1,那未知数是谁?未知数是 a 和 b。Z 最大值和 Z 负值到时候都是输入。有两个未知数,两个方程,这是一个二元一次联立方程。因此求出 ab 值,如果 a 这样设置,b 这样设置,就能立即满足这个条件。那么我们最初求得的原始投影矩阵现在得到了升级。升级成什么?所以负 Z 最大值、负 Z 乘以负 1 保持不变,a 值和 b 值变化后,不仅可以求出投影坐标,而且在投影时还能保持某些值。意思是要保持原值。为什么要从负 1 到正 1 的范围内,投影到二维图像平面,为什么只关心 XY 坐标,Z 值有什么重要性?可能会有人这样问。为什么重要呢?
Attendees 1 31:04
나중에 앞에 있는 애하고 뒤에 있는 애하고 깊이 테스트를 해야 돼요.
깊이 테스트를 수행을 하는데 그러면은 뭘 가지고 테스트를 해야 되나 제 값을 가지고 이제 테스트를 해서 보이는 애와 안 보이는 애를 이제 구별을 해야 될 거예요.
稍后需要对前面的和后面的进行深度测试。在进行深度测试时,需要用什么来测试呢?使用它的值来测试,以区分可见和不可见的物体。
Attendees 1 31:26
이해되나요? 여기까지 어려운 건 없죠
你理解了吗?这里没有什么难的地方,对吧?
Attendees 1 31:37
그래서 우리가 지금까지 구한 행렬이 이 빨간색 행렬이에요.
빨간색 행렬이고 요 빨간색 행렬이 하는 역할은 혈색색 행렬이 하는 역할은 결국 기하학적으로 봤을 때는 이렇게 절두체 모양의 단축 공간을 지금 이렇게 바꾼 거예요.
x 프로젝션 된 x하고 y의 좌표를 계산을 했죠. 그 얘기는 이 뒤쪽이 그냥 찌그러졌다는 얘기예요.
그리고 잭 사크는 뭐부터 뭘로 바꾼 건가? 마이너스 1부터 플러스 1까지 바꾼 거겠죠?
됐나요? 근데 우리가 원하는 공간은 이 공간이죠.
그럼 여기서 z는 맞네. 마이너스 1부터 플러스 1까지 여기 콤마가 하나 빠졌네요.
콤마 그러면 x 해갖고 요거 x하고 y를 스케일을 해줘야겠죠.
얼마만큼 스케일을 해줘야 되나 똑같이 엑스 맥스 백의 엑트민 스 맥스 백의 트민이면은 이 스축의 기죠.
길이로 나눠 그럼 길이가 얼마가 돼요? 길이가 1이 되죠.
所以我们现在得到的矩阵是这个红色矩阵。红色矩阵的作用从几何学角度来看,是将这种截锥体形状的空间进行了变换。我们计算了 x 和 y 的投影坐标。这意味着后面被压缩了。Jack Sark 是从什么变换到什么?从负 1 到正 1,对吧?那么我们想要的空间是什么呢?z 是正确的,从负 1 到正 1,这里少了一个逗号。那么我们需要对 x 和 y 进行缩放。缩放多少呢?与 x 最大值和 x 最小值的长度相除。那么长度是多少?长度是 1。
Attendees 1 32:40
근데 길이가 1인 게 아니라 우리는 길이가 2인 걸 원하니까 똑같이 두 배를 다시 곱해주고 와인 x3이 와인이 으로 나눠서 두배 곱해주고 얘는 왜 안 했나 얘는 이거 그냥 스케일 행렬이에요.
지금 스케일 행렬 얘는 왜 1이에요? 이미 맞춰져 있으니까 할 필요 없죠.
그래서 이 파란 행렬하고 빨간 행렬하고 곱해주면은 결국 이렇게 정의된 관측 공간을 우리가 그토록 원했던 정교한 감축 공간으로 변환해 주는 변환해 주는 행렬을 찾게 된다는 얘기예요.
그래서 얘는 네이트릭스 pers 퍼스펙티브 아까는 MOS였는데 m 퍼스를 유도를 할 수가 있는 거죠.
공식을 그래서 이 두 개 곱하면은 어떤 결과가 나올까 이렇게 곱하면은 열심히 곱해보면은 이런 행렬이 나오는데 이런 행렬
但是我们不想要长度为 1,而是希望长度为 2,所以同样乘以两倍,然后用 x3 除以 x,乘以两倍。为什么这个没有变?因为这是一个缩放矩阵。为什么这个是 1?因为已经对齐了,所以不需要。因此,当我们将这个蓝色矩阵和红色矩阵相乘时,我们最终找到了将定义的观测空间转换为我们一直想要的精确缩减空间的变换矩阵。所以这是透视矩阵 Pers,之前是 MOS,现在可以推导出 M 透视。如果这样相乘,经过认真计算,会得到这样一个矩阵。
Attendees 1 33:40
그럼 이 원금 투영 행렬이 하는 역할은 결국 뭐예요?
여기에 곱해지는 건 누구예요? x y z 1이 곱해지죠 참고로 이 x y z 1은 어디서 표현되는가 x y z 1은 뷰 코디네이트에서 표현된 애죠.
모델 비행렬 곱해진 애니까 이 좌표하고 요 원분 투형액렬로 곱해주면은 이렇게 곱하면 x 프라임 저렇게 이렇게 곱하면 y 프라임 z w까지 나오게 되겠죠?
됐나요? 근데 이거는 원본 투형 공간에서의 동체 좌표니까 얘를 뭘로 나눠줘야 되나 w 프라임으로 나눠줘야겠죠 w 타임으로 나누면은 이게 1이 되고 x y z 그래서 요 z 값은 제트 값은 마이너스 1부터 1 사이고 y 값도 마이너스 1부터 1 사이고 x 값도 마이너스 1부터 1 사이로 이렇게 바뀐다는 얘기예요.
那么这个原始投影矩阵的作用是什么呢?与之相乘的是谁?是 x y z 1,顺便提一下,这个 x y z 1 是在哪里表示的?它是在视坐标中表示的。因为已经乘以了模型矩阵,如果将这个坐标与这个原始投影矩阵相乘,就会得到 x',这样相乘得到 y',最后得到 z 和 w。明白了吗?但这是原始投影空间中的坐标,所以需要用什么来除呢?当然是用 w'除,用 w'除,这就变成 1 了,x y z。所以 z 值在-1 到 1 之间,y 值也在-1 到 1 之间,x 值也在-1 到 1 之间,就是这样改变的。
Attendees 1 34:43
여기까지 질문 있는 사람 혹시 살짝 생소할 수가 있는데
到这里有人可能会有问题,这可能会让人感到有点陌生。
Attendees 1 34:56
최대한 어떤 여러분의 의식의 흐름에 맞춰서 설명을 한 거예요.
지금
我是按照你们意识流的方式来解释的。现在
Attendees 1 35:09
어떻게 더 쉽게 할 수 있을까? 원본 투영 처음에 설명했고
如何能更容易地做到这一点?我之前已经解释了原始投影
Attendees 1 35:17
그래서 가장 단순한 원금 투영 행렬을 유도했고 예제 한번 살펴봤고 이 원금 투영 행렬에서 깊이 값을 정교화해 주는 확장을 한번 했고 근데 깊이 값만 정기화해주더니 x하고 y는 아직 정규화가 안 된 상태죠.
그래서 스케일 해주는 것까지 했더니 합쳐졌더니 이렇게 나온 거고
所以我们推导了最简单的原始投影矩阵,并查看了一个示例,然后对深度值进行了精细化处理,但是只对深度值进行了规范化,x 和 y 还未被规范化。所以当我们对其进行缩放后,它们就被组合在一起了。
Attendees 1 35:53
그러면 오픈 젤에서 이런 원근 투형을 사용하려면은 어떤 함수를 써야 되나 살펴보면은 GL 플러스텀이라는 함수가 있어요.
GL 플러스 텀 6개의 인자를 갖네요. 6개의 인자 xm x 맥스 x 민은 어디인 것 같아요?
스민은 앞쪽 평면이 있고 뒤쪽 평면이 있죠. 근데 이 앞쪽 평면에 이 x 좌표 y x 좌표를 얘기하는 거예요.
다시 보면은
那么在 OpenGL 中如果要使用这种透视投影,需要使用什么函数呢?有一个叫做 GL Frustum 的函数。它有 6 个参数。这 6 个参数中的 xm、x max 和 x min 是什么?有前面的平面和后面的平面。但是这里讨论的是 x 坐标,再仔细看看。
Attendees 1 36:32
관측 공간은 위에서 봤다고 가정을 하면은 이렇게 생겼겠죠.
위쪽에서 봤다고 하면은 여기 앞쪽 평면이 여기서부터 여기까지예요.
如果从上方观察观测空间,它应该是这样的。如果从上方看,这里的前面平面是从这里到这里。
Attendees 1 36:47
그다음에 여기 뒤쪽 평면에 관측 공간인데 x 미는 어딘가 여기를 나타내고 x x는 여기를 나타내는 거예요.
됐나요? 그다음에 y 인과 와인 x는 어디를 나타내는 걸까?
만약에 이번에 옆에서 봤다고 가정을 하면은
然后这里的后面平面是观测空间,x 推进某处在这里,x x 在这里表示。明白了吗?然后 y 和 w 的 x 是什么?如果这次假设从侧面看的话
Attendees 1 37:09
거축 공간이 이렇게 생겼겠죠. 그럼 여기가 와이 민 여기가 와 맥스에 해당하는 거고 결국 지금 하고 있는 일이 뭔가 이 앞쪽 평면에 앞쪽 평면에 스민 x 맥스 와 민 y 맥스를 정의를 해준 거죠.
그다음에 다섯 여섯 번째 인자는 디니어 d 파예요.
디니어 디바 디니어는 어디서부터 어디까지의 거리 VC 뷰 코디네이트에서 앞쪽 평면까지의 거리 이게 d리어고 그다음에 d f는 뒤쪽 평면까지의 거리를 나타내는 거겠죠.
与会者 1 37:09 轴空间看起来是这样的。那么这里是 Y 最小值,这里是 Y 最大值。我们现在正在做的是在前平面定义 X 最大值和 X 最小值。接下来的第五个和第六个参数是 Dnear 和 Dfar。Dnear 是从视图坐标到前平面的距离,Dfar 是到后平面的距离。
Attendees 1 37:57
여기가 뷰 코디네이트의 중심이라고 하면은 여기서부터 어디까지 여기까지의 거리가 디 리어가 되는 거예요.
그다음 여기서부터 여기까지의 거리 이만큼의 거리가 d파가 되는 거고 이자표하고 이자표는 결국 뭐에 따라서 결정이 되는 거예요?
d파에 따라서 결정이 되는 거죠. 내가 d 파를 이만큼으로 했다.
이만큼으로 결정을 해주면은 이 좌표하고 이 좌표는 더 작은 좌표가 되겠죠.
Dr을 더 멀리 해줬다면 더 커지게 되겠죠. 그렇기 때문에 얘하고 얘는 중요하지 않고 앞에 평면에 x 및 x 맥스 y 및 y 맥스를 정해주는 게 중요해요.
与会者 1 37:57 如果这里是视图坐标的中心,那么从这里到这里的距离就是 Dnear。然后从这里到这里的距离就是 Dfar。这些坐标是根据 Dfar 决定的。如果我将 Dfar 设置为这么大,那么这些坐标会变小。如果我将 Dfar 设置得更远,那么坐标会变大。因此,重要的不是这些坐标,而是在前平面定义 X 最大值和 X 最小值。
Attendees 1 39:00
이 공식이 우리 앞에서 정의했던 공식이고 그다음에 요 GL 플러스 텀이라는 함수는 제트 민 젝트 x 대신에 디니어 d파를 사용하기 때문에 디니어 d 파는 마이너스 제트 맥스 마이너스 제트맨이 된다고 했죠.
그래서 이 공식을 변형을 한 거예요. 뭘로 디니어 디파 버전으로 디니어 d 5 버전으로 변형을 하면은 우리가 사용하는 최종적인 이런 공식이 이제 나오게 되는 거죠.
이 공식은 요 함수에 대응되는 공식이에요.
在我们之前定义的这个公式中,GL 函数使用了深度(d)参数代替了 z 最大值,因此深度参数会变成负 z 最大值减去负 z 最小值。所以我们对公式进行了变形。通过将其转换为深度参数版本,我们最终得到了使用的公式。这个公式对应于该函数。
Attendees 1 39:43
뭐가 바뀌었나 보면은 x 맥스 마이너스 x 민 x 맥스 마이너스 x 민 동일하네요.
그렇죠 근데 원래는 뭐였어요? 제트 맥스였는데 제트 맥스는 마이너스 d이어죠.
그렇기 때문에 이 마이너스가 마이너스 d이어하고 합쳐지면은 그냥 두 배의 d 이어가 되겠네요.
그래서 이 부분이 바뀌었고 여기도 마찬가지네요.
요 마이너스 2배의 제트 맥스가 2배 디니어로 바꾼 것뿐이고 그다음에 여기 제트 맥스 빼기 제트 미는 d 니어 빼기 d5 제트 맥스 더하기 z 미는 d니어 더하기 DB로 바뀐 거고 결국은 같은 식이에요.
같은 식이라는 것만 알고 있으면 되겠죠. 어떤 관계에 의해서 이 관계에 의해서 같은 식이 된다는 거고 그다음에 근데 실질적으로 사용할 때는 gr 플러스텀보다는 이게 뭐야 gu 퍼스펙티브라는 함수를 더 많이 써요.
퍼스펙티브 왜냐하면은 플러스터는 인자가 몇 개예요 인자가 6개죠 6개라서 사용하기가 조금 번거로워요.
看看发生了什么变化,x 最大值减去 x 最小值是相同的。但是原来是什么?z 最大值,现在是负 d。因此,当负号和负 d 结合时,就变成了两倍的 d。所以这部分发生了变化,这里也是如此。这里的负两倍 z 最大值只是简单地变成了两倍的深度参数,然后 z 最大值减去 z 最小值变成了深度参数 d 近减去 d 远,z 最大值加 z 最小值变成了深度参数 d 近加 d 远。最终还是同一个公式。我们只需要知道它们是同一个公式,是通过某种关系转换而来。实际使用时,比起 glFrustum,更多地使用 gluPerspective 函数。为什么?因为 glFrustum 有 6 个参数,使用起来比较麻烦。
Attendees 1 40:59
번거로운데 glu 퍼스펙티브라는 함수는 임재가 4개예요.
4개 4개 가지고 사용하기가 더 쉬워요. 그래서 보면은 glu 퍼스펙티브 같은 경우는 첫 번째 인자가 포비예요.
호비 이거는 화가 카메라라고 생각하면은 카메라가 볼 수 있는 각도가 있겠죠.
카메라가 볼 수 있는 각도 카메라의 화각을 세터로 전달을 할 거예요.
여기는 30도 45도 60도 이런 각도가 전달이 될 거예요.
그다음에 두 번째 임자는 에스펙 레시오라고 해서 이제 비율이에요.
앞쪽 평면에 너비 나누기 높이 너비 나누기 높이 이 비율이 화각과 같이 전달이 될 거예요.
사실 이 두 개의 인자만 있으면 뭘 찾아낼 수 있을까 x 민 x 맥스 y 민 y 맥스를 찾아낼 수가 있어요.
그래서 이 두 개를 가지고 GL 플러스 텀에 스민 x 맥스 y 및 y 맥스 찾아낼 수 있어요.
이따 보여줄 거예요. 그다음에 세 번째 네 번째는 디니어 디바 이건 똑같아요.
与会者 1 40:59 虽然有点麻烦,但 glu 透视函数只有 4 个参数。使用 4 个参数会更容易。可以看到,glu 透视函数的第一个参数是 FOV(视场角)。这就像是相机的视角。相机可以看到的角度,即相机的视角,将作为参数传递。这里会传递 30 度、45 度、60 度这样的角度。接下来第二个参数是宽高比,即前平面宽度除以高度。这个比例将与视场角一起传递。事实上,仅凭这两个参数就可以找出 x 最小值、x 最大值、y 最小值和 y 最大值。所以用这两个参数可以在 GL 平截头体中找出 x 最小值、x 最大值、y 最小值和 y 最大值。待会儿我会给你们展示。然后第三个和第四个是近平面和远平面。
Attendees 1 42:12
디니어 디바는 똑같고 디니어 디파는 마이너스 제트 맥스 마이너스 제트 민으로 정의되는 것도 많고 스펙 메시오는 미드스 나누기 하이트 여비 나누기 높이 그다음에 셀타는 화학 근데 얘는 이제 어떤 제약이 있냐면은 항상 좌우 상하 대칭이 있는 관측 공간만 정의할 수가 있어요.
반면에 이 giu 플러스턴 같은 경우는 약간 삐딱한 관측 공간을 정의할 수 있어요.
내가 카메라가 여기 있고 관측 공간에 스민이 여기 있고 x 맥스가 여기 있고 그러니까 옆으로 이렇게 보게 정리할 수 있는데 왜냐하면 x m x x y 민 y 맥스를 자유롭게 줄 수가 있죠.
얘는 근데 GL 퍼스펙티브 같은 경우는 내가 바라보는 방향이 있으면 거기서 이제 대칭이 좌우 대칭 상하 대칭이 그런 공간만 정의를 하는 거죠.
대신에 뭐가 줄었어 인자가 2개로 6개에서 4개로 줄은 거죠.
与会者 1 42:12 近平面和远平面是一样的,近平面被定义为负 z 最大值和负 z 最小值。宽高比是中间值除以高度,视场角是高度除以视场。但是,这种方法有个限制,就是只能定义左右和上下对称的观测空间。相比之下,giu 平截头体可以定义一些稍微倾斜的观测空间。比如我的相机在这里,观测空间的 x 最小值在这里,x 最大值在这里,所以可以侧向观察。因为可以自由设置 x 最小值、x 最大值、y 最小值和 y 最大值。但是 GL 透视函数只能定义我所面对方向的对称空间,即左右对称和上下对称。代价是参数从 6 个减少到了 4 个。
Attendees 1 43:19
이건 뭘까
与会者 1 43:19 这是什么?
Attendees 1 43:25
이게 위드스고 이게 위드스면은 이게 하이트가 되겠죠.
하이트가 되고 x 좌표는 마이너스 리스 나누기 2가 되겠네요.
이게 x m에 해당하겠네요. 이게 뭐에 해당하는 x 맥스에 해당하겠죠.
그다음에 여기에 와 민에 해당하고 이게 와 맥스에 해당하니까 질문 있나요?
아니죠.
与会者 1 43:25 这是宽度,如果这是宽度的话,高度就会是这样。高度成为 x 坐标,就会是负的 r 除以 2。这就是 x 米的值。这是 x 最大值。接下来这是 w 最小值,这是 w 最大值,有什么问题吗?没有。
Attendees 1 44:00
이 전체가 몇 도였나? 아까 전체가 세타라고 했죠.
전체가 세타가 되고 여기는 2분의1 세터가 될 거예요.
그다음에 d 니어는 앞쪽 평면까지의 거리가 되죠.
앞쪽 평면까지의 거리 그럼 여기서부터 뭘 구할 수 있을까?
与会者 1 44:00 这个整体是多少度?之前我们说整体是θ。整体是θ,这里将是 1/2θ。然后 d 近是前面平面的距离。前面平面的距离,那么从这里我们可以求什么呢?
Attendees 1 44:24
코텐덴트 이브의 스타
与会者 1 44:24 余切丁的星星
Attendees 1 44:32
x 맥스는 엑스 민 거 앞에서 이거는 살펴본 거죠. 대칭이기 때문에 x 맥스하고 xm은 w 나누기 2가 될 테고, 와인과 와인 x는 하이트 나누기 2가 될 테고 그다음에 코탄젠트 2분의 세타 하면 뭐가 되나요?
코탄젠트 2분의 세타 탄젠트 2분의 세타가 누구 분의 누구예요?
얘 분의 예죠. 근데 코탄젠트는 반대로 얘 분의 예죠.
eh분의 d이요. 코탄니트 2분의 세터는 eh분의 d2 하면은 h의 2분의 h분의 d2 하면 이렇게 나오네요.
h분의 2 기니어가 나오고
与会者 1 44:32 x 最大值是 x 最小值,我们在前面已经看过了。因为是对称的,所以 x 最大值和 xm 将是 w 除以 2,高度 w 和 w 的 x 将是高度除以 2,然后二分之θ的余切是什么?二分之θ的正切是谁的分之谁?是它分之它。但是余切是反过来的,它分之它。是 eh 分之 d。二分之θ的余切是 eh 分之 d2,如果是 h 的 2 分之 h 分之 d2,就会是这样出现。h 分之 2 会出现。
Attendees 1 45:15
그다음에 에스펙 메시오 분의 1은 에스펙 메시오가 원래 w 나누기 1이었죠.
w 나누기 h였죠. 근데 그거 분의 1이니까 h 나누기 w가 되고
与会者 1 45:15 然后,spec mesio 分之 1 原本是 w 除以 1,是 w 除以 h。但是因为是它的分之 1,所以变成了 h 除以 w
Attendees 1 45:32
지금 뭐 하려고 하는 거지 이 이 행렬이 이 행렬이 아까 우리가 처음에 유도한 행렬이죠.
이걸 가지고 뭘 바꾸겠다는 얘기예요? 이거는 얼마일까?
x 맥스 빼기 x 민은 x x 맥스에서 x 민 빼고 너이 나오죠.
그러니까 이게 w로 바뀌겠다는 얘기죠. w로 바뀌고 그다음에 이 비니어는 그대로 쓰고 y x 빼기 y 2는 h로 바뀌고 두 배의 디니어 그대로 쓰고.
근데 이게 왜 에스펙 네시오 분의 코탄젠트 2분의 세타일까?
왜 얘하고 얘하고 같을까? 스펙 메시오 분의 2 w 분의 h죠 그리고 코타에서 2분의 세타 h 분의 2 배 d이어라고 했죠.
그럼 두 개 얘하고 얘하고 곱하면 어떻게 돼? h 약 분대 가지고 w 분의 이게 나오겠네요.
저게 요게 이해돼요. 그래서 결국 에스텝 메이시 하고 세타만 알면은 요 값을 우리가 찾을 수 있다는 얘기죠.
그다음에 h 분의 2 배 d니어는 바로 코트 젠트 2분의 세네.
参与者 1 45:32 现在你想做什么?这是我们之前推导出的矩阵。你想用这个做什么改变?这是多少?x 最大减 x 最小是 x x 最大减 x 最小。所以这将变成 w。w 变化,然后这个线性保持不变,x 减去 y2 变成 h,两倍的线性保持不变。但为什么是视野角的余切分之二?为什么它们相同?视野角的一半除以宽度,余切分之二乘以高度除以深度。那么这两个相乘会怎样?高度除以宽度会出现这个。你明白了吗?所以只要知道视野角和高宽比,我们就能找到这个值。然后高度除以二乘以深度就是余切分之二。
Attendees 1 46:53
그래서 세트 값만 알면 여기 요 값을 찾을 수가 있는 거고 그다음에 디니어다 비파 디니어다.
비파는 그대로 쓰면 되는 거고 나머지도 그대로 쓰면 되네요.
나머지는 그대로 쓰면 되니까 결국은 뭐만 알면은 x m x x y m y x 알 필요 없이 세타하고 에스펙 네이션만 알면은 원래 공식은 이건데 얘는 이렇게 바뀔 수 있고 얘하고 얘가 세터하고 에스펙 레시어로 표현이 된다는 얘기죠.
그래서 퍼스펙티브 주연류 퍼스펙티브 함수가 들어오면은 주열류 퍼스펙티브 함수가 이렇게 들어오면 어떤 공식을 쓰면 된다 이 공식을 쓰면 된다는 얘기예요.
똑같은 역할을 해줄 수가 있다는 거죠. 하지만 어떤 문제가 있다?
제약의 뭐다? glu 퍼스펙티브는 좌우 대칭, 상하 대칭을 가정하고 만드는 거예요.
지금 근데 GL 뉴 플러스터만 관측 공간이 어떻게 해도 된다는 얘기예요.
내가 여기서 저쪽을 바라보고 있지만 관측 공간 저쪽에 이렇게 펼쳐져도 된다는 얘기예요.
参与者 1 46:53 所以只要知道这些值,就能找到这些值,然后深度保持不变。剩下的也都保持不变。实际上只需要知道视野角和宽高比,不需要知道 x 最大 x 最小,y 最大 y 最小。原来的公式是这个,但它可以这样变换,并且可以用视野角和宽高比表示。所以当透视函数进来时,你可以使用这个公式。它们可以做相同的工作。但有什么问题?约束是什么?glu 透视假设左右对称、上下对称。而 GL 新平截头体可以是任何观测空间。我可以从这里看那里,观测空间可以这样展开。
Attendees 1 48:04
한쪽에 그러면은 이제 오블릭 프로젝션이라고 해서 경사 투영 효과를 만들어낼 수가 있어요.
혹시 중고등학교 때 기술 가정 물리 공업 시간에 배웠나요?
이렇게 경사 투영해서 옆에서 바라보는 그런 효과를 이제 만들어낼 수 있는 거죠.
glu 플러스턴 가지고 그래서 얘는 조금 더 일반적인 거고 대신에 분자를 6개를 줘야 되고 시간이 많이 됐나요?
아니죠. 얘는 인자가 4개 있는 거고 대칭적인 것만 만들어내는 거고
因此,可以创建一个叫做斜投影的效果。你在中学的技术、家政或物理课上学过吗?这样就可以从侧面观察这种斜投影效果。使用 glu plus,这是更通用的方法,但需要提供 6 个参数,需要很长时间吗?不是的,它有 4 个参数,只能创建对称的投影。
Attendees 1 48:43
그래서 오픈gl에서 보면 이제 여기 셋업 뷰 볼륨이 이렇게 바뀌었네요.
GL 로드 아이덴티티 한 다음에 화약은 60도 그다음에 에스펙 레시오는 윈도우에 위드스 나누기 하이트 해주면 되죠.
그다음에 0.1 100은 뭘까요? 그러면 내가 내 눈 앞에서 0.1 앞에 앞쪽 평면을 두고 뒤쪽 평면은 100이라는 곳에 두겠다는 얘기죠.
그 관측 범위를 지정을 하겠다는 얘기예요. 그러면 이 공식에 의해서 이런 행렬이 이제 만들어지게 되는 거죠.
그러면은 원금 투영도 이제 끝났어요. 그래서 여기가 마무리가 된 거예요.
오늘은 여기까지 질문 질문 있는 사람은 끝나고 개인적으로 질문하세요.
수고했습니다.
在 OpenGL 中,视图体积已经发生了变化。首先载入单位矩阵,然后设置视角为 60 度,宽高比为窗口宽度除以高度。0.1 和 100 是什么意思?这意味着我将前平面放在距离眼前 0.1 的地方,后平面放在 100 的位置。这是在指定观测范围。根据这个公式,相应的矩阵就会生成。原始投影到此结束。今天就到这里,如有问题,请在结束后私下询问。辛苦了。
clovanote.naver.com