![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/cG7eKL/btqLpuOWWI3/7kcpuOafUBkFzKBkZjIz10/img.png)
로데브 中 텍스쳐를 이해하는 페이지. 이해했던 흐름 그대로의 정리라서 로데브 원본과 살짝 차이가 있습니다. 1. 벽 텍스쳐 2. 천장, 바닥 텍스쳐 3. 텍스쳐에 투명도 넣기 3. 텍스쳐에 투명도 넣기 앞에서 mlx에서는 0xAARRGGBB 색상 형식을 사용하고, 실제로 투명도를 지원하는 것도 확인해보았다. (위 움짤) alpha값이 있는 색상을 바로 mlx 함수로 띄웠던 경우다. 하지만 cub3d처럼 buf[y][x]에 색을 저장하는 방식에서는 투명도를 다르게 구현해야 한다. '완전 투명'한 경우를 제외하고는, 아무리 반투명한 색을 넣어도 스크린에 띄워보면 '완전 불투명'한 이미지로 출력된다. 왜냐하면 buf[y][x] = color 과정에서 기존 색상을 남겨두지 않고 그냥 새로운 색상을 덮어 씌워버리..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/LeaVL/btqLjsSHV3z/B2Th4RkwkZSovO4gbWCciK/img.png)
로데브 中 텍스쳐를 이해하는 페이지. 이해했던 흐름 그대로의 정리라서 로데브 원본과 살짝 차이가 있습니다. 1. 벽 텍스쳐 (affine texture mapping) 2. 천장, 바닥 텍스쳐 3. 텍스쳐에 투명도 넣기 1. 벽 텍스쳐 (affine texture mapping) 광선으로 벽의 높이를 구한 다음부터의 내용 int texNum = worldMap[mapX][mapY] - 1; double obj_x = (ray.side == 0) ? posY + perpWallDist * rayDirY : posX + perpWallDist * rayDistX; int img_x = (int)(img_width * (obj_x - floor(obj_x))); if (wall->type == SOUTH ||..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/mb4jY/btqLf6bt2qO/KBkKqfY0Nk2kwk9l7OYkFk/img.png)
mlx_get_data_addr 함수를 살펴보는 페이지. 함수를 이해하는 데 필요했던 rgb, endian, bpp, 포인터 형변환 개념을 먼저 정리했습니다. mlx_get_data_addr에서 정리된 내용은 벽과 천장, rgb는 투명도 페이지에서 사용됩니다. 1. rgb 2. endian 3. bpp 4. 포인터 형변환 5. mlx_get_data_addr 1. rgb Red, Green, Blue (빨강, 초록, 파랑) 세 종류의 기본 색을 이용하여 색을 표현한다. 각각의 요소는 0 ~ 255 의 값을 가질 수 있다. 이 값은 해당 색이 얼마나 섞였는지를 나타낸다. ex) 완전 빨강: R = 255, G = 0, B = 0 완전 초록: R = 0, G = 255, B = 0 완전 파랑: R = 0, ..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/dTu0fh/btqIggGknKX/lFK7tEFVRhyoPxhl5T6U20/img.png)
It will make you aware of the importance of using scripts to automate your tasks. For that, you will discover the "docker" technology and use it to install a complete web server. 과제의 큰 흐름은 다음과 같다. 1. 도커를 사용해서 데비안 OS 가상환경을 만든다. 2. 가상환경 위에서 웹서버를 구축한다. 3. 1, 2 과정을 Dockerfile로 자동화한다. 진행하면서 등장하는 모든 개념을 완벽하게 파악하는 건 무리였다.. 그래서 이 코드를 왜 쓰는지 이해되는 수준까지만 공부했다. 그리고 시작부터 도커가 작동하는 원리를 머리에 집어넣으려니까 진도가 안나가서 ㅋㅋㅋ ..