전체 글92 Chapter 2.2 (Vertex Array object) 사용한 Cube 렌더링 큐브 렌더링에 앞서 VBO와 VAO의 차이의 대해서 정리하자. **VAO (Vertex Array Object)**와 **VBO (Vertex Buffer Object)**는 모두 OpenGL에서 버텍스 데이터를 효율적으로 관리하고 렌더링하는 데 사용되는 객체입니다. 이 둘은 서로 보완적인 역할을 하며, 그래픽 파이프라인에서 버텍스 데이터를 처리하는 데 중요한 역할을 합니다. 그러나 VAO와 VBO는 그 목적과 기능이 다릅니다.1. VAO (Vertex Array Object)VAO는 버텍스 속성 상태를 저장하는 객체입니다. 이것은 버텍스 데이터의 포맷과 속성 설정을 관리합니다. VAO는 다음과 같은 정보를 저장합니다.VBO를 통해 바인딩된 버텍스 데이터의 속성 포인터 설정 (glVertexAttribP.. 2024. 10. 22. Chapter 2.1 VBO(Vertex Buffer Object) 사용하여 정사각형 렌더링. 해본다. 이 코드는 OpenGL을 사용해 정사각형(Square)을 그리기 위한 VBO(Vertex Buffer Object)와 EBO(Element Buffer Object)를 설정하고, 이를 기반으로 렌더링하는 과정입니다.CreateVBO 함수에서 VBO와 EBO를 생성하고 데이터들을 전송한 뒤,Render 함수에서 셰이더에 데이터를 연결하고 삼각형 두 개를 그려 정사각형을 렌더링합니다. void Square::CreateVBO() { // VBO 생성 -> 바인딩 -> 버퍼에 데이터 복사 glGenBuffers(1, &bufferId); glBindBuffer(GL_ARRAY_BUFFER, bufferId); // 버텍스 배열 먼저 넣고 뒤에 컬러 배열 있음. glBufferData.. 2024. 10. 17. Chapter 1.3 Touch Event 받아서 Triangle 색상 변경해보기 서피스 뷰에서 터치 이벤트 리스너를 등록하고 JNI로 이벤트를 내려주자.TouchEventStart : 첫 터치 이벤트TouchEventMove : 드래그 이벤트TouchEventRelease : 마지막 터치 이벤트 GLESView.javaclass GLESView extends GLSurfaceView { .... public boolean onTouchEvent( final MotionEvent event ) { //Log.w(TAG, "OnTouchEvent"); switch( event.getAction() ) { case MotionEvent.ACTION_DOWN: { GLESNat.. 2024. 10. 15. Chapter 1.2 Vertex Buffer 사용해보기 이전 챕터에서 셰이더는 빌드 후 프로그램에 어태치를 했고,프로그램을 링킹하여 검증까지 완료했다. 셰이더에 in 키워드로 정의되어 있는 변수를 어트리뷰트라고 한다.셰이더 어트리뷰트는 GPU에 존재 하기 때문에,CPU에 있는 버텍스 데이터를 GPU로 전달해 주어야 한다.uniform의 경우는 보간이 필요없는 const 데이터 값을 사용할때 사용한다. 어트리뷰트 바인딩 과정1. glGetAttribLocation()glGetAttribLocation은 셰이더 프로그램에서 속성(attribute) 변수의 위치(인덱스)를 얻는 함수입니다. 버텍스 데이터를 셰이더의 특정 속성에 연결하기 위해 해당 속성의 위치를 알아야 하며, 그 위치는 컴파일된 셰이더 프로그램에서만 결정됩니다.GLint glGetAttribLoc.. 2024. 10. 12. 이전 1 2 3 4 5 ··· 23 다음