3D 게임 엔진 학습 2 (HelloWorld 소스 분석)

  • 프로젝트 구조
    HelloWorld$>
    
  • box에서.gpb 마운트 장면
  • 장면 카메라의 화면 비율 설정
  • 마운트된 장면에서 방향광 노드 발견
  • 라이트 객체 확보
  • 불러오는 장면에서box라는 모델 노드 가져오기
  • 노드 모델 대상 획득
  • 설정 모형의 재질은res/box입니다.material
  • 재료의 환경광을 장면의 환경광으로 설정
  • 재료의 방향광 설정
  • 재료의 비침 방향 설정
  • 게임 업데이트 및 렌더링
    void HelloWorld::update(float>
    
  • 시간에 따라 Y축을 기준으로 노드를 회전시킴
  • 렌더링 장면:scene->visit는 장면의 모든 노드를 훑어보고HelloWorld:drawScene를 호출하여 각각 노드를 그립니다
  • 렌더링 노드: 렌더링 노드 모델
  • 장면 파일과 재질 스크립트 분석 장면 파일(box.gpb) 재질 파일(box.material)
    material>
    
  • 재질명칭:box
  • 기술 및 채널 사용
  • 정점 착색기 프로그램:res/colored.vert
  • 세션 착색기 프로그램:res/colored.frag
  • 착색기 전역 정점 변환 매트릭스 설정: 귀속 시스템의 정점 변환 매트릭스
  • 착색기 전역 정점 변환 역방향 변환 매트릭스: 귀속 시스템 정점 변환 역방향 변환 매트릭스
  • 착색기 만반사광 색상 설정: 흰색 광(rgba) 사용
  • 렌더기 상태 속성: 뒷면 재단을 사용하여 깊이 검사 열기
  • 정점 착색기 프로그램
    // Inputs
    attribute>
    
  • 입력: 모델 공간 정점 변수, 모델 공간 법선 변수;전역 정점 변환 매트릭스, 전역 정점 변환 역방향 변환 매트릭스
  • 출력: 보기 공간 법선
  • 계산 보기 공간 위치: 전역 정점 변환 매트릭스*모델 공간 정점 위치
  • 계산 보기 공간 법선: 전역 정점 변환 역방향 변환 매트릭스 * 모델 공간 법선
  • 세션 셰이더 프로그램
    // Uniforms
    uniform>
    
  • 입력: 전역 반사색, 환경광색, 방향광색, 방향광색
  • 입력: 정점 법선
  • 방향광방향과 정점법선이 있는 단위방향량
  • 을 계산한다.
  • 컴퓨팅 환경광: 전역 반사광*전역 환경광
  • 계산만반사광: 전역유향광*전역만반사광*유향광과 법선의 점승
  • 출력: 단편 투명도 = 만반사색의 투명도, 단편색 = 환경광 + 만반사광
  • 좋은 웹페이지 즐겨찾기