Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- LayerMask
- 유니티 오브젝트 풀링
- 코드블럭 테마
- 유니티 Vector3
- 유니티 Rotate
- 유니티 ResourceManager
- 이진트리
- Quaternion.Euler
- InputManager
- ML-Agents
- 유니티 InputManager
- unity
- c++
- 깊이 우선 탐색
- 유니티
- Mathf.Clamp
- c++ 문자열 자르기
- 유니티 시야 가림
- 유니티 머신러닝
- LookRotation
- 알고스팟
- 오브젝트 풀링
- Raycast
- 소스코드 줄번호
- eulerAngles
- 너비 우선 탐색
- 유니티 리소스매니저
- LFS
- 유니티 Collision
- git-lfs
Archives
- Today
- Total
무민은귀여워
0702 과제 본문
반응형
1. 디퍼드와 포워드 랜더링을 조사해오세요.
포워드 렌더링
- 이전부터 사용되던 방식
- 3D공간에 존재하는폴리곤을 픽셀화하여, 그 픽셀마다 쉐이딩과 라이팅 연산을 더하는 방식으로 묘사
- 장점
- 비교적 저사양에서도 작동. 동적 광원 모델을 애니메이션 종류나 하드웨어에 구애되지 않고 자유롭게 사용
- 앤티얼라이싱을 지원하는 하드웨어에서 어떤 구성요소든 렌더링할 수 있다는 장점
- 단점
- 연산이 느리다. 광원이 여러개일 때 각 광원마다 렌더링 프로세스 횟수가 늘어나 성능이 떨어짐
- 그림자 처리가 어렵고 화면 깊이값을 이용한 포스트 이펙트는 따로 처리해야 함
디퍼드 렌더링
- 많이 사용하는 덩어리를 미리 선처리해서 메모리에 보관해 뒀다가 재사용하는 방식
- 장점
- 수많은 동적 라이팅을 실시간으로 보여줄 수 있다.
- 수많은 오브젝트와 복잡한 모델링을 표현할 때 유리하다.
- 단점
- 추가 메모리를 많이 필요로 함
- 고사양 하드웨어 요구
- 안티앨리어스를 구현하기 까다롭다. 어떤 물체가 어떤 표면재질인지 알 수 없이 픽셀값만 계산해야 한다는 단점
- 수시로 GPU메모리에서 많은 정보를 가져오느라 대역폭이나 용량이 결과물 속도에 영향을 준다는 단점
※ 참고 사이트
https://www.zdnet.co.kr/view/?no=20120328142201&re=R_20120328143001
https://m.blog.naver.com/blue9954/220296252565
2. 프레넬에 대해 조사해오세요.
프레넬 공식 (Fresnel equation)
모든 빛은 반사, 흡수, 굴절이라는 과정을 거치게 된다. 이때 프레넬 공식을 사용해서 빛의 움직임을 계산하게 된다.
(굴절률 : 빛이 진공에서 특정 매질로 이동할 때 속도가 얼마나 느려지는지 그 비율을 측정한 것)
그래픽스에서 반사와 굴절을 계산하기 위해서는 얼마만큼의 빛이 반사되고 얼마만큼의 빛이 굴절되는지 알아야 한다. 그것을 알려주는 공식이 프레넬 공식이다.
이 공식을 통해 0도에서의 반사율 값(근사치)인 F0를 구하고, 일반적으로 이 값을 "Metallic" 핀에다가 넣어 준다.
※ 참고 사이트
https://lifeisforu.tistory.com/384
3. 원의 지름을 입력받아 입력받은 지름을 가지는 원을 그립니다. 원의 지름은 최소2 최대 15입니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
#include<stdio.h>
#include<Windows.h>
#include<cmath>
void gotoxy(int x, int y)
{
COORD Pos;
Pos.X = x;
Pos.Y = y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), Pos);
};
int main()
{
// 3. 원의 지름을 입력받아 입력받은 지름을 가지는 원을 그립니다. 원의 지름은 최소 2 최대 15입니다.
int originX = 40, originY = 20;
double r, input;
printf("반지름을 입력하세요 : ");
scanf_s("%lf", &input);
r = input / 2;
for (int x = 0; x < 100; x++)
{
for (int y = 0; y < 100; y++)
{
if (sqrt(pow(x - originX, 2) + pow(y - originY, 2)) <= r)
{
gotoxy(x, y);
printf("*");
}
}
}
printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
// 4. 위 예제에서 안이 비어있는 원을 그립니다. 경계처리는 버림, 반올림, 올림 자유입니다.
printf("반지름을 입력하세요 : ");
scanf_s("%lf", &input);
r = input / 2;
system("cls");
for (int x = 0; x < 100; x++)
{
for (int y = 0; y < 100; y++)
{
int calc = sqrt(pow(x - originX, 2) + pow(y - originY, 2));
if (calc == r)
{
gotoxy(x, y);
printf("*");
}
}
}
printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
return 0;
}
|
cs |
4. 위 예제에서 안이 비어있는 원을 그립니다. 경계처리는 버림, 반올림, 올림 자유입니다.
3번 참조
반응형
'IT > 기타' 카테고리의 다른 글
0709 과제 (0) | 2019.07.09 |
---|---|
0703 과제 (0) | 2019.07.03 |
0701 과제 (0) | 2019.07.01 |
메모) php 코딩 규약 (0) | 2018.11.26 |
[Ruby on rails] 테이블 관리 1:1, 1:n, m:n 관계 (0) | 2018.11.04 |
Comments