Skip to content

Commit cfc6bfd

Browse files
author
태재영
committed
ko: shadow
1 parent f2dbfb6 commit cfc6bfd

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

56 files changed

+1499
-1536
lines changed

webgl/lessons/ko/index.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
Title: WebGL 기초
22

33

4-
처음부터 배우는 WebGL
4+
기초부터 배우는 WebGL
55

6-
이건 WebGL의 기본 원리부터 알려주는 글입니다.
7-
하지만 인터넷에 있는 오래된 OpenGL 글들을 재탕한 건 아닙니다.
8-
완전히 새로운 것으로, 낡은 지식들을 버리고, WebGL이 실제로 무엇이며 어떻게 작동하는지에 대한 완전한 이해에 이르게 할 겁니다.
6+
WebGL의 기초 원리부터 알려주는 글 모음입니다.
7+
하지만 인터넷에 있는 오래된 OpenGL 글을 다시 정리한 건 아닙니다.
8+
완전히 새롭게, 오래된 지식들은 버리고, WebGL이 실제로 무엇이며 어떻게 작동하는지 완전히 이해할 수 있을 겁니다.
99

10-
혹시 WebGL2에 관심이 있다면 [webgl2fundamentals.org](https://webgl2fundamentals.org)를 봐주세요.
10+
WebGL2에 관심이 있다면 [webgl2fundamentals.org](https://webgl2fundamentals.org)를 봐주세요.
1111

1212
{{{include "webgl/lessons/ko/toc.html"}}}
1313

webgl/lessons/ko/langinfo.hanson

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
categoryMapping: {
1717
'fundamentals': "기초",
1818
'image-processing': "이미지 처리",
19-
'matrices': "2D 평행 이동, 회전, 스케일링, 행렬 수학",
19+
'matrices': "2D 평행 이동, 회전, 스케일, 행렬 수학",
2020
'lighting': "조명",
2121
'organization': "구조와 구성",
2222
'geometry': "지오메트리",

webgl/lessons/ko/webgl-2-textures.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,13 @@ TOC: 2개 이상의 텍스처 사용
1717

1818
기본적으로 처리할 수 있는 2가지 방법이 있습니다.
1919
텍스처 없이 실행되고 텍스처가 로드되면 프로그램이 업데이트하도록 코드를 구조화할 수 있는데요.
20-
이후의 글을 위해 해당 method를 저장해두겠습니다.
20+
이후의 글을 위해 해당 메서드를 저장해두겠습니다.
2121

2222
이 경우 그리기 전에 모든 이미지가 로드되는 걸 기다릴 겁니다.
2323

2424
먼저 이미지를 로드하는 코드를 함수로 수정해봅시다.
2525
이는 매우 간단합니다.
26-
새로운 `Image` 객체를 생성하고, 로드할 URL을 설정한 다음, 이미지 로딩이 끝났을 때 호출할 callback을 설정합니다.
26+
새로운 `Image` 객체를 생성하고, 로드할 URL을 설정한 다음, 이미지 로딩이 끝났을 때 호출할 콜백을 설정합니다.
2727

2828
```
2929
function loadImage(url, callback) {
@@ -36,8 +36,8 @@ function loadImage(url, callback) {
3636

3737
이제 URL 배열을 로드하고 이미지 배열을 생성하는 함수를 만들어 보겠습니다.
3838
먼저 `imagesToLoad`를 로드할 이미지 개수로 설정합니다.
39-
그런 다음 `loadImage`에 전달하는 callback에서 `imagesToLoad`를 감소시킵니다.
40-
`imagesToLoad`가 0이 되면 모든 이미지가 로드되었고 이미지 배열을 callback에 전달합니다.
39+
그런 다음 `loadImage`에 전달하는 콜백에서 `imagesToLoad`를 감소시킵니다.
40+
`imagesToLoad`가 0이 되면 모든 이미지가 로드되었고 이미지 배열을 콜백에 전달합니다.
4141

4242
```
4343
function loadImages(urls, callback) {
@@ -47,7 +47,7 @@ function loadImages(urls, callback) {
4747
// 이미지 로딩이 끝날 때마다 호출
4848
var onImageLoad = function() {
4949
--imagesToLoad;
50-
// 모든 이미지가 로드되면 callback 호출
50+
// 모든 이미지가 로드되면 콜백 호출
5151
if (imagesToLoad == 0) {
5252
callback(images);
5353
}
@@ -118,10 +118,10 @@ void main() {
118118

119119
WebGL에는 "텍스처 유닛"이 있습니다.
120120
이는 텍스처에 대한 레퍼런스 배열이라 생각할 수 있습니다.
121-
sampler에 대해 사용할 텍스처 유닛을 셰이더에 알려줍니다.
121+
샘플러에 대해 사용할 텍스처 유닛을 셰이더에 알려줍니다.
122122

123123
```
124-
// Sampler location 탐색
124+
// 샘플러 위치 탐색
125125
var u_image0Location = gl.getUniformLocation(program, "u_image0");
126126
var u_image1Location = gl.getUniformLocation(program, "u_image1");
127127
@@ -173,7 +173,7 @@ var getContext = function() {
173173
var activeTextureUnit = 0;
174174
175175
var activeTexture = function(unit) {
176-
// unit enum을 인덱스로 변환
176+
// "unit enum"을 인덱스로 변환
177177
var index = unit - gl.TEXTURE0;
178178
// 활성 텍스처 유닛 설정
179179
activeTextureUnit = index;
@@ -217,7 +217,7 @@ var getContext = function() {
217217
gl.bindTexture(gl.TEXTURE_2D, textures[1]);
218218
```
219219

220-
이렇게 할 수도 있고
220+
이렇게 할 수도 있고,
221221

222222
```
223223
gl.activeTexture(gl.TEXTURE0 + 0);
@@ -226,7 +226,7 @@ var getContext = function() {
226226
gl.bindTexture(gl.TEXTURE_2D, textures[1]);
227227
```
228228

229-
혹은 이렇게
229+
혹은 이렇게,
230230

231231
```
232232
for (var ii = 0; ii < 2; ++ii) {

webgl/lessons/ko/webgl-2d-drawimage.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ Canvas 2D API는 `drawImage`라는 이미지를 그리는 용도의 굉장히
106106
var tex = gl.createTexture();
107107
gl.bindTexture(gl.TEXTURE_2D, tex);
108108

109-
// 모든 이미지가 2의 거듭 제곱이 아니라고 가정
109+
// 모든 이미지가 2의 거듭제곱이 아니라고 가정
110110
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);
111111
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);
112112
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);

webgl/lessons/ko/webgl-2d-matrices.md

Lines changed: 77 additions & 77 deletions
Large diffs are not rendered by default.

webgl/lessons/ko/webgl-2d-rotation.md

Lines changed: 41 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
1-
Title: WebGL 2D Rotation
1+
Title: WebGL 2D 회전
22
Description: 2D에서 회전하는 방법
3-
TOC: 2D Rotation
3+
TOC: 2D 회전
44

55

66
이 포스트는 WebGL 관련 시리즈에서 이어집니다.
7-
첫 번째는 [기초](webgl-fundamentals.html)로 시작했고, 이전에는 [geometry translation](webgl-2d-translation.html)에 관한 것이었습니다.
7+
첫 번째는 [기초](webgl-fundamentals.html)로 시작했고, 이전에는 [지오메트리 평행 이동](webgl-2d-translation.html)에 관한 것이었습니다.
88

9-
솔직히 이걸 어떻게 설명해야 할지 모르겠지만 뭐 어때요, 시도는 해봅시다.
9+
솔직히 이걸 어떻게 설명해야 할지 모르겠지만 뭐 어때요.
10+
시도는 해봅시다.
1011

1112
먼저 "단위원"이라 불리는 걸 소개하려고 합니다.
1213
중학교 수학을 기억해보면(저처럼 졸지 마세요!) 원은 반지름을 가지는데요.
@@ -25,11 +26,11 @@ TOC: 2D Rotation
2526
3학년 기초 수학을 기억해보면 뭔가에 1을 곱해도 값은 그대로 유지됩니다.
2627
그래서 123 * 1 = 123 입니다.
2728
아주 기본적이죠?
28-
단위원, 반지름이 1.0인 원도 1의 형태인데요.
29+
단위원, 반지름이 1.0인 원도 1과 동일한데요.
2930
회전하는 1입니다.
30-
그래서 무언가를 단위원에 곱할 수 있으며 이는 1을 곱하는 것과 같습니다.
31+
그래서 무언가를 단위원에 곱하면 이는 1을 곱하는 것과 같습니다.
3132

32-
단위원의 어느 지점에서 X와 Y값을 가져와서 [이전 샘플](webgl-2d-translation.html)geometry에 곱할 겁니다.
33+
단위원의 어느 지점에서 X와 Y값을 가져와서 [이전 샘플](webgl-2d-translation.html)지오메트리에 곱해봅시다.
3334

3435
다음은 셰이더 변경 사항입니다.
3536

@@ -46,7 +47,7 @@ TOC: 2D Rotation
4647
+ a_position.x * u_rotation.y + a_position.y * u_rotation.x,
4748
+ a_position.y * u_rotation.y - a_position.x * u_rotation.x);
4849

49-
// Translation 추가
50+
// 평행 이동 추가
5051
* vec2 position = rotatedPosition + u_translation;
5152

5253
그리고 자바스크립트를 업데이트해서 두 값을 전달할 수 있습니다.
@@ -66,10 +67,10 @@ TOC: 2D Rotation
6667

6768
...
6869

69-
// Translation 설정
70+
// 평행 이동 설정
7071
gl.uniform2fv(translationLocation, translation);
7172

72-
+ // Rotation 설정
73+
+ // 회전 설정
7374
+ gl.uniform2fv(rotationLocation, rotation);
7475

7576
// 지오메트리 그리기
@@ -96,22 +97,22 @@ TOC: 2D Rotation
9697

9798
<img src="../resources/rotate-30.png" class="webgl_center" />
9899

99-
원의 위치는 0.50와 0.87에 있는데
100+
원의 위치는 0.50와 0.87에 있는데,
100101

101102
<pre class="webgl_center">
102103
3.0 * 0.87 + 9.0 * 0.50 = 7.1
103104
9.0 * 0.87 - 3.0 * 0.50 = 6.3
104105
</pre>
105106

106-
그게 우리가 필요로 하는 곳이며
107+
그게 우리가 필요로 하는 곳이며,
107108

108109
<img src="../resources/rotation-drawing.svg" width="500" class="webgl_center"/>
109110

110-
시계방향 60도 또한 동일하게
111+
시계방향 60도 또한 동일하게,
111112

112113
<img src="../resources/rotate-60.png" class="webgl_center" />
113114

114-
원의 위치는 0.87과 0.50에 있고
115+
원의 위치는 0.87과 0.50에 있고,
115116

116117
<pre class="webgl_center">
117118
3.0 * 0.50 + 9.0 * 0.87 = 9.3
@@ -123,8 +124,8 @@ TOC: 2D Rotation
123124
이 패턴은 회전이 가능하게 해줍니다.
124125

125126
단위원의 점은 또 다른 이름이 있습니다.
126-
이를 sine과 cosine이라고 합니다.
127-
따라서 주어진 각도에 대해 sine과 cosine을 이렇게 찾을 수 있습니다.
127+
이를 사인과 코사인이라고 합니다.
128+
따라서 주어진 각도의 사인과 코사인을 이렇게 찾을 수 있습니다.
128129

129130
function printSineAndCosineForAnAngle(angleInDegrees) {
130131
var angleInRadians = angleInDegrees * Math.PI / 180;
@@ -135,53 +136,51 @@ TOC: 2D Rotation
135136

136137
자바스크립트 콘솔에 코드를 복사하고 `printSineAndCosignForAngle(30)`이라고 치면 `s = 0.49 c = 0.87`이 출력됩니다. (참고: 숫자는 반올림했습니다.)
137138

138-
전부 합치면 geometry를 원하는 각도로 회전할 수 있습니다.
139-
그저 돌리고 싶은 각도의 sine과 cosine으로 rotation을 설정하면 됩니다.
139+
전부 합치면 지오메트리를 원하는 각도로 회전할 수 있습니다.
140+
그저 돌리고 싶은 각도의 사인과 코사인으로 `rotation` 설정하면 됩니다.
140141

141142
...
142143
var angleInRadians = angleInDegrees * Math.PI / 180;
143144
rotation[0] = Math.sin(angleInRadians);
144145
rotation[1] = Math.cos(angleInRadians);
145146

146-
다음은 각도 설정만 있는 버전입니다.
147-
슬라이더를 드래그해서 이동하거나 회전시켜보세요.
147+
다음은 슬라이더로 각도를 설정할 수 있는 버전입니다.
148+
슬라이더를 드래그해서 평행 이동하거나 회전시켜보세요.
148149

149150
{{{example url="../webgl-2d-geometry-rotation-angle.html" }}}
150151

151-
이해가 되셨기를 바랍니다.
152-
이건 회전을 수행하는 일반적인 방법이 아니지만 2개의 글에서 더 다룰 것이므로 계속 읽어주세요.
153-
다음은 더 간단한 [Scale](webgl-2d-scale.html)입니다.
152+
이 방법은 회전을 수행하는 일반적인 방법이 아니지만 2개의 글에서 더 다룰 것이므로 계속 읽어주세요.
153+
다음은 더 간단한 [스케일](webgl-2d-scale.html)입니다.
154154

155-
<div class="webgl_bottombar"><h3>Radian이 뭔가요?</h3>
155+
<div class="webgl_bottombar"><h3>라디안이 뭔가요?</h3>
156156
<p>
157-
Radian은 원, 회전, 각도에 사용되는 측정 단위입니다.
158-
마치 거리를 inche, yard, meter 등으로 측정할 수 있는 것처럼 우리는 각도를 degree나 radian으로 측정할 수 있습니다.
157+
라디안은 원, 회전, 각도에 사용되는 측정 단위입니다.
158+
마치 거리를 인치, 야드, 미터 등으로 측정할 수 있는 것처럼 우리는 각도를 도나 라디안으로 측정할 수 있습니다.
159159
</p>
160160
<p>
161-
아마 미터법 측정을 사용하는 수학이 영국식 측정을 사용하는 수학보다 더 쉽다는 걸 아실텐데요.
162-
inche에서 feet로 바꾸려면 12로 나눕니다.
163-
inche에서 yard로 바꾸려면 36으로 나누고요.
161+
아마 미터법 측정을 사용하는 수학이 영국식 측정을 사용하는 수학보다 더 쉽다는 걸 아실겁니다.
162+
인치에서 피트로 바꾸려면 12로 나눕니다.
163+
인치에서 야드로 바꾸려면 36으로 나눕니다.
164164
여러분은 어떨지 모르지만 저는 암산으로 36을 나누지 못합니다.
165165
미터법을 사용하면 훨씬 쉽죠.
166-
millimeter에서 centimeter로 바꾸려면 10으로 곱합니다.
167-
millimeter에서 meter로 바꾸려면 1000으로 곱하고요.
168-
<strong>암산</strong>으로 1000은 곱할 수 있습니다.
166+
밀리미터에서 센티미터로 바꾸려면 10으로 곱합니다.
167+
밀리미터에서 미터로 바꾸려면 1000으로 곱합니다.
168+
<strong>암산</strong>으로 1000은 저도 곱할 수 있습니다.
169169
</p>
170170
<p>
171-
radian vs degree 둘은 비슷한데요.
172-
degree는 수학을 어렵게 만듭니다.
173-
radian는 수학을 쉽게 만들고요.
174-
원에는 360도가 있지만 radian은 2π뿐 입니다.
175-
따라서 한 바퀴는 2π radian이죠.
176-
반 바퀴는 1π radian입니다.
177-
1/4바퀴는, 90도면서 1/2π radian이고요.
171+
도 vs 라디안 둘은 비슷한데요.
172+
도는 수학을 어렵게 만들고, 라디안은 수학을 쉽게 만듭니다.
173+
원에는 360도가 있지만 라디안은 2π뿐 입니다.
174+
따라서 한 바퀴는 2π 라디안이죠.
175+
반 바퀴는 1π 라디안입니다.
176+
1/4바퀴는, 90도면서 1/2π 라디안이고요.
178177
그러니 어떤 걸 90도 회전하고 싶다면 <code>Math.PI * 0.5</code>라고 쓰면 됩니다.
179-
45도로 회전하고 싶다면 <code>Math.PI * 0.25</code> 등으로 쓸 수 있죠.
178+
45도로 회전하고 싶다면 <code>Math.PI * 0.25</code>라고 쓸 수 있죠.
180179
</p>
181180
<p>
182-
각도, 원 또는 회전과 관련된 거의 모든 수학은 radian으로 생각하기 시작하면 매우 간단하게 동작합니다.
181+
각도, 원 또는 회전과 관련된 거의 모든 수학은 라디안으로 생각하기 시작하면 매우 간단하게 동작합니다.
183182
그러니 시도해보세요.
184-
UI 화면을 제외하고 나머지는 degree가 아닌 radian을 사용해보세요.
183+
UI 화면을 제외하고 나머지는 도가 아닌 라디안을 사용해보세요.
185184
</p>
186185
</div>
187186

webgl/lessons/ko/webgl-2d-scale.md

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
1-
Title: WebGL 2D Scale
2-
Description: 2D에서 scale하는 방법
3-
TOC: 2D Scale
1+
Title: WebGL 2D 스케일
2+
Description: 2D에서 크기를 조정하는 방법
3+
TOC: 2D 스케일
44

55

66
이 포스트는 WebGL 관련 시리즈에서 이어집니다.
7-
첫 번째는 [기초](webgl-fundamentals.html)로 시작했고, 이전에는 [geometry rotation](webgl-2d-rotation.html)에 관한 것이었습니다.
7+
첫 번째는 [기초](webgl-fundamentals.html)로 시작했고, 이전에는 [지오메트리 회전](webgl-2d-rotation.html)에 관한 것이었습니다.
88

9-
Scale은 [translation](webgl-2d-translation.html)만큼이나 쉽습니다.
9+
스케일은 [평행 이동](webgl-2d-translation.html)만큼이나 쉽습니다.
1010

11-
원하는 scale로 위치를 곱하면 되는데요.
11+
원하는 스케일로 위치를 곱하면 되는데요.
1212
[이전 예제](webgl-2d-rotation.html)에서 변경된 사항들은 다음과 같습니다.
1313

1414
```
@@ -21,19 +21,19 @@ uniform vec2 u_rotation;
2121
+uniform vec2 u_scale;
2222
2323
void main() {
24-
+ // 위치 scale하기
24+
+ // 위치 스케일링
2525
+ vec2 scaledPosition = a_position * u_scale;
2626
2727
// 위치 회전
2828
vec2 rotatedPosition = vec2(
2929
* scaledPosition.x * u_rotation.y + scaledPosition.y * u_rotation.x,
3030
* scaledPosition.y * u_rotation.y - scaledPosition.x * u_rotation.x);
3131
32-
// Translation 추가
32+
// 평행 이동 추가
3333
vec2 position = rotatedPosition + u_translation;
3434
```
3535

36-
그리고 그릴 때 scale하기 위해 필요한 자바스크립트를 추가합니다.
36+
그리고 그릴 때 스케일을 설정하기 위해 필요한 자바스크립트를 추가합니다.
3737

3838
```
3939
...
@@ -51,13 +51,13 @@ void main() {
5151
5252
...
5353
54-
// Translation 설정
54+
// 평행 이동 설정
5555
gl.uniform2fv(translationLocation, translation);
5656
57-
// Rotation 설정
57+
// 회전 설정
5858
gl.uniform2fv(rotationLocation, rotation);
5959
60-
+ // Scale 설정
60+
+ // 스케일 설정
6161
+ gl.uniform2fv(scaleLocation, scale);
6262
6363
// 지오메트리 그리기
@@ -68,14 +68,14 @@ void main() {
6868
}
6969
```
7070

71-
그러면 이제 scale을 가집니다.
71+
그러면 이제 스케일을 가집니다.
7272
슬라이더를 드래그해보세요.
7373

7474
{{{example url="../webgl-2d-geometry-scale.html" }}}
7575

76-
한 가지 주목할만한 점은 음수로 scale하면 geometry가 뒤집힌다는 겁니다.
76+
한 가지 주목할만한 점은 음수로 스케일링하면 지오메트리가 뒤집힌다는 겁니다.
7777

78-
지난 3개의 글이 [translation](webgl-2d-translation.html), [rotation](webgl-2d-rotation.html), scale을 이해하는데 도움이 되셨기를 바랍니다.
78+
지난 3개의 글이 [평행 이동](webgl-2d-translation.html), [회전](webgl-2d-rotation.html), 스케일을 이해하는데 도움이 되셨기를 바랍니다.
7979

8080
다음에는 이 3가지 모두를 훨씬 간단하고 더 유용한 형태로 결합하는 [행렬](webgl-2d-matrices.html)을 살펴보겠습니다.
8181

@@ -84,13 +84,13 @@ void main() {
8484
<p>
8585
처음에 누군가가 'F'를 텍스처로 쓰는 걸 봤는데요.
8686
'F' 자체는 중요하지 않습니다.
87-
중요한 건 어느 방향에서든 orientation을 알 수 있다는 겁니다.
87+
중요한 건 어느 방향에서든 오리엔테이션을 알 수 있다는 겁니다.
8888
예를 들어 하트 ❤나 삼각형 △을 사용한다면 그게 수평으로 뒤집혔는지 알 수 없습니다.
8989
원 ○은 더 안 좋겠죠.
9090
색상이 있는 사각형은 각 모서리를 다른 색으로 할 수 있겠지만 각 모서리가 어떤 것인지 기억하고 있어야 합니다.
91-
F의 orientation은 바로 인지할 수 있습니다.
91+
F의 오리엔테이션은 바로 인지할 수 있습니다.
9292
</p>
9393
<img src="../resources/f-orientation.svg" class="webgl_center"/>
94-
<p>Orientation을 알 수 있는 어떤 모양이라도 괜찮으며, 저는 처음 이 아이디어를 접했을 때부터 'F'를 사용해왔습니다. </p>
94+
<p>오리엔테이션을 알 수 있는 어떤 모양이라도 괜찮으며, 저는 처음 이 아이디어를 접했을 때부터 'F'를 사용해왔습니다.</p>
9595
</div>
9696

0 commit comments

Comments
 (0)