본문 바로가기
반응형

Graphics4

[Shader] Step, Mix, SmoothStep 기본 void main() { vec3 colour = vec3(0.0); colour = vec3(vUvs.x); gl_FragColor = vec4(colour, 1.0); } Step step(edge,x): x를 edge로 비교를 해서 step 함수를 생성 if(x 0.0 //step(0.5,0.51) => 1.0 colour = vec3(step(0.5,vUvs.x)); Mix mix(a,b,t): a와 b 사이를 t를 퍼센트로 사용하여 선형으로 보간. Unreal, Unity에서 사용하는 lerp와 같음. return a+t(b-a); //mix(10.0,20.0,0.25) => 12.5 //mix(10.0,20.0,1) => 20.0 vec3 red = vec3(1.0, 0.0, 0.0); .. 2024. 4. 3.
[Shader] Unifrom, Varying, Attribute 차이 Uniform 셰이더에 전달되는 전역변수이다. 모든 셰이더 단계에서 사용될 수 있고, 동일한 값이 전달된다. uniform vec4 colour1; uniform vec4 colour2; Varying VertexShader에서 정의되어 Fragment Shader에서 사용되는 변수이다. varying vec2 vUvs; Attributes 어플리케이션에서 정의되어 Vertex Shader에서 사용되는 변수이다. attribute vec3 colour; 2024. 3. 28.
[Graphics]외적은 무조건 오른손 법칙을 사용하는가? 외적 벡터 곱(cross product)로 두 벡터에 수직인 다른 벡터로 나오며 오른손 법칙에 의해 수직 방향이 결정된다. 계기 외적을 사용하던 중 생각했던 것과 다르게 나타나는 것을 알게 되었다. 이 문제가 왜 일어나게 되었는지 어떻게 해결하면 좋을까 싶어 조사를 하였다. void ASCharacter::UpdateMouseVector() { LastForward = GetActorForwardVector(); //1: (액터의 정면 x축) X (액터의 위 z축) StrafeVector = FVector::CrossProduct(LastForward,GetActorUpVector()); //2: (액터의 위 z축) X (액터의 정면 x축) StrafeVector = FVector::CrossProduc.. 2024. 3. 21.
Mesh란 무엇일까? 메시 폴리곤들이 모인 하나의 3차원 물체 메시에 정보를 저장하기 위해서는 3가지 요소들이 필요하다 Vertices: 3D 공간상의 좌표 Edges: 각 vertex를 연결한 선 Faces: 각 선들을 3개 이상 연결하여 만들어진 면 메쉬의 면들은 모든 2D형태로 만들 수 있다. 간단하고 빠르게 만들기 위해서 게임 엔진들은 삼각형을 사용하여 제작한다. 메시는 코드로 정의하기 쉽다. 메시의 정점들만 메모리에 저장을 한다. 선분들과 면들은 정점들의 순서로 요약해서 정의 된다. 정점들의 순서 정점들의 메시의 형상 데이터에 저장되어있는 순서일 때도 있고, index buffer 데이터 구조로 정의되기도 한다. 메시가 그려지는 방향에 따라서 “전면”과 “후면”이 결정된다. 각 엔진과 3d프로그램에 따라서 방향이 다.. 2022. 4. 1.
반응형