카테고리 338 [OpenGL] Lighting, Shading Lighting, Shading OpenGL에서 lighting/shading을 하기 위해서 vertex normal을 설정해줘야 한다. glNormal*()을 이용한다. vertex normal을 어떻게 정해주느냐에 따라 flat shading을 할지 smooth shading을 할지가 달라진다. OpenGL에서는 phong shading은 지원하지 않는다. flat shading gouraud shading Shading Flat shading Flat shading을 하기 위해서 각 vertex normal을 그 vertex가 포함된 face normal로 설정해야 한다. 따라서 하나의 vertex는 여러 개의 normal을 가진다. Gouraud Shading 각의 vertex normal을 인접.. 2021. 5. 31. Shading Normal Surface Normal 어떤 점에서 표면에 수직인 vector를 surface normal이라 한다. 보통 길이가 1인 unit vector를 사용한다. Diffuse reflection과 specular reflection에서 중요한 역할을 한다. Face Normal 하나의 polygon face에서의 surface normal이다. 점의 순서에 따라 normal의 방향이 달라지기 때문에 점의 순서가 중요하다. 반시계 방향으로 점의 순서가 주어질 때의 normal이 앞면(표면의 바깥 방향)을 나타낸다. 점의 순서대로 오른쪽 손을 감싸면 그것이 normal의 방향이다. Shading 일반적인 의미로 음영으로 빛에 의해 큰 영향을 받는다. 컴퓨터그래픽스에서는 polygon이 차지하는 각 .. 2021. 5. 31. Lighting Reflection of Light Ligth 빛은 물체에 의해 다음과 같이 될 수 있다. absorbed : 흡수 emitted : 발산 scattered : 산란 reflected : 반사 refracted : 굴절 그 중 scaterring(산란)과 reflection(반산)이 물체의 표면의 시각적인 모습을 결정하는 결정적인 요인이다. 물체의 색상, highlight 등을 결정한다. scaterring과 reflection을 합쳐서 reflection이라고도 한다. Reflection Reflection은 다음과 같이 구분된다. Diffuse reflection 난반사 모든 방향으로 빛이 반사된다. Specular reflection 정반사 ideal specular reflection 완전히 한쪽.. 2021. 5. 31. 4. Control Hazard (Branch Hazard) Branch Hazard Conditional jump(beq, bne)에서 branch의 여부는 4번째 cycle(MEM stage)에서 판단이 완료된다. 따라서 3 cycle 동안 nop을 수행해야 한다. 성능 Conditional jump instruction은 약 15% 확률로 나타나기 때문에 CPI는 1.45 (= 1 + 0.15*3)가 된다. 이는 성능에 있어서 큰 감소를 일으킨다. 해결 beq/bne를 ID stage에서 끝냄으로써 손실을 최대한 줄일 필요가 있다. ID stage에서 끝낸다면 1cycle로 줄일 수 있다. 이를 위해서 ID stage에서 adder와 comparator가 필요하다. adder ID stage에서 target address를 계산한다. comparator 두 .. 2021. 5. 30. 4. Data Hazard Data Hazards 뒤의 instruction이 앞의 instruction의 결과를 사용할 때 발생한다. EX hazard : 바로 앞의 instruction의 결과를 사용할 때 MEM hazard : 2번째 앞의 instruction의 결과를 사용할 때 Load-use data hazard : 바로 앞의 instruction이 lw인 경우 EX Hazard and MEM Hazard 원인 Forwarding이 없을 경우 instruction의 결과는 WB가 끝나야 update된다. 그렇기 때문에 앞의 instruction의 연산 결과를 바로 뒤의 instruction에서 사용할 수는 없다. Data hazard에서는 값을 write 한 후 read해야 하는 RAW(read after write) d.. 2021. 5. 30. 이전 1 ··· 43 44 45 46 47 48 49 ··· 68 다음