꾸준히 개발하자

고정 헤더 영역

글 제목

메뉴 레이어

꾸준히 개발하자

메뉴 리스트

  • 홈
  • 태그
  • 방명록
  • 분류 전체보기 (115)
    • Computer Graphics (58)
      • SCOP (9)
      • HumanGL (9)
      • Graphics Pipeline (10)
      • ALEngine (21)
      • Hiking (9)
    • 자료구조와 알고리즘 (43)
      • 백준 (14)
      • 자료구조, 알고리즘 (29)
    • Java 공부 (5)
      • Java 공부 (1)
      • Java 주차별 공부 (3)
      • 더 자바, 코드를 테스트하는 다양한 방법 (1)
    • 리눅스 (8)
      • 리눅스 기초 (8)

검색 레이어

꾸준히 개발하자

검색 영역

컨텐츠 검색

Computer Graphics

  • Hiking: Procedural Animation을 활용한 등산 시뮬레이션 프로젝트

    2025.04.03 by Banjosh

  • ALEngine: 엔진 제작 프로젝트 후기 - (6)

    2025.03.26 by Banjosh

  • ALEngine: 엔진 프로젝트 결과물 - (5)

    2025.03.26 by Banjosh

  • ALEngine: Trigger 구현 - (4)

    2025.03.26 by Banjosh

  • ALEngine: SIMD를 이용한 최적화 - (3)

    2025.03.26 by Banjosh

  • ALEngine: Freeze 구현 - (2)

    2025.03.21 by Banjosh

  • ALEngine: Frustum Culling 구현 - (1)

    2025.02.17 by Banjosh

  • ALEngine: 게임 엔진 제작 합류 - (0)

    2025.02.17 by Banjosh

Hiking: Procedural Animation을 활용한 등산 시뮬레이션 프로젝트

게임 엔진 프로젝트를 마치고 이번에는 새롭게 애니메이션 프로젝트를 진행해보려 한다.프로젝트 주제Procedural Animation을 통해 스켈레탈 메시 애니메이션 캐릭터가 등산하는 시뮬레이션을 완성하는 것이 목표이다. 다양한 상황을 연출할 예정이며, 이를 구현하기 위해 다음과 같은 기술들을 사용할 예정이다.Foot IKTarget-based IKFull-Body IKStep Planning & Foot TrajectoryAnimation LayerPose SnapshotRagdollProcedural Animation이란?미리 만들어진 애니메이션 클립 없이, 코드나 알고리즘을 통해 실시간으로 애니메이션을 생성하는 기술이다.대표적인 기술로 IK(Inverse Kinematics)가 있으며, 물리(Phys..

Computer Graphics/Hiking 2025. 4. 3. 14:40

ALEngine: 엔진 제작 프로젝트 후기 - (6)

5개월간의 게임 엔진 제작 프로젝트가 끝났다. OpenGL을 깔짝대던 수준에서 시작하여SCOP 프로젝트를 통해 Model과 수학 라이브러리와 친해지고,HumanGL 프로젝트를 통해 계층적 구조와 애니메이션에대해 공부를 하고,FT_Newton(물리 엔진) 프로젝트를 통해 물리 엔진을 직접 구현하는 값진 경험을 하고,ALE를 마치며 엔진 최적화와 엔진 구조에 대한 이해를 높일 수 있었다. C와 C++만을 공부하여 아직 Unity와 Unreal을 사용해보지 못해 부족한 점이 많았지만 팀원들이 많이 도와준 덕분에 프로젝트를 잘 마칠 수 있었다고 생각한다. 취업 걱정 없고 돈 걱정 없었다면 현재 팀원들과 지금 엔진의 부족한 점을 전부 수정하고 더 좋은 엔진으로 develop하는 단계까지 진행하고 싶지만 현실적으로..

Computer Graphics/ALEngine 2025. 3. 26. 20:39

ALEngine: 엔진 프로젝트 결과물 - (5)

5개월간의 게임 엔진 제작 프로젝트가 끝나고 4개의 씬을 만들어보았다. Rendering Demo1https://www.youtube.com/watch?v=cwIg2w3mOJ0 Rendering Demo2https://www.youtube.com/watch?v=ya1hKmkO8JY Physics Demo1https://www.youtube.com/watch?v=oJnp3A-QEsE Physics Demo2https://www.youtube.com/watch?v=_ZHyU_WvnIw Animation Demohttps://www.youtube.com/watch?v=M6dmDZbce60  이 다음 글에서는 후기로 찾아올 예정이다.

Computer Graphics/ALEngine 2025. 3. 26. 20:19

ALEngine: Trigger 구현 - (4)

이번엔 물리 충돌이 아닌 서로 영역이 겹쳐진 경우 센서 감지를 하는 Trigger 구현을 해보았다.Trigger는 기존 충돌 감지에서 둘 중 하나가 Sensor인 경우, 충돌처리를 하는 것이 아닌 Sensor 접촉 Flag를 변경하여 엔진에 접촉을 알리는 방식으로 구현하였다. 즉 원래라면 A와 B의 collider가 겹친경우 충돌을 감지하여 solve 단계를 통해 서로 분리하지만, 둘 중 하나가 Sensor라면 충돌처리를 하지 않고 A와 B가 서로 접촉해있다는 사실을 Flag를 통해 엔진에 알리는 것이다. 다음은 해당 Trigger를 통해 구현한 문 열고 닫기 영상이다.Sensor인 문과 Scene 카메라의 collider가 겹친 경우 서로 접촉했다는 사실을 알게 되고 이때 F를 누르면 문을 열고 닫을 ..

Computer Graphics/ALEngine 2025. 3. 26. 20:14

ALEngine: SIMD를 이용한 최적화 - (3)

SIMD 최적화를 적용한 이유ALEngine에서는 일반적으로 자주 쓰이는 glm이라는 수학 라이브러리 대신 우리가 직접 만든 alglm이라는 라이브러리를 사용한다. 이전 과제들에서도 직접 만든 수학 라이브러리를 사용하긴 했지만, 이번 프로젝트처럼 큰 규모가 아니었기에 별다른 최적화 없이 사용했고, 이번 프로젝트에서는 연산이 많이 일어나기 때문에 수학 라이브러리의 최적화도 중요해졌다.따라서 우리는 alglm 수학 라이브러리에 SIMD 최적화를 적용하기로 했다.SIMD란?SIMD는 Single Instruction, Multiple Data의 약자로, 말 그대로 하나의 명령어로 여러 개의 데이터 연산을 처리하는 방식이다.일반적인 CPU의 레지스터들은 32bit 혹은 64bit 크기로, 하나의 명령어로 하나의..

Computer Graphics/ALEngine 2025. 3. 26. 19:57

ALEngine: Freeze 구현 - (2)

엔진에 캐릭터 애니메이션을 추가하기 위해 Freeze 기능을 추가하였다.캐릭터의 콜라이더를 캡슐로 할 것인데 이때 캡슐이 쓰러지지 않게 회전을 Freeze 해줄 필요가 있는 것이다.Freeze의 종류Freeze는 크게 두 가지 종류가 있다.Position Freeze – X, Y, Z 축 방향으로의 이동을 막는다.Rotation Freeze – X, Y, Z 축 방향으로의 회전을 막는다.Freeze 적용 영상다음은 Freeze를 적용하기 전 영상이다.  이번에는 Y축 Position만 Freeze한 영상이다.  이번엔 X, Y, Z 축 Position을 모두 Freeze한 영상이다.  마지막으로, Rotation의 X, Y, Z 축까지 전부 Freeze한 영상이다. Freeze 구현 방법물리 처리에서는 ..

Computer Graphics/ALEngine 2025. 3. 21. 19:26

ALEngine: Frustum Culling 구현 - (1)

Frustum Culling이란?Frustum Culling은 카메라의 시야 범위(Frustum) 밖에 있는 객체들을 렌더링하지 않아 성능을 최적화하는 기술이다. 시야에 보이지 않는 객체들을 제외함으로써 불필요한 GPU 연산을 줄여 성능을 크게 향상시킬 수 있다.내가 구현한 Frustum Culling1.  BVH 사용Bounding Volume을 구 형태로 구성하여 BVH(Bounding Volume Hierarchy)를 구축했다. 모든 오브젝트는 BVH의 노드로 관리되며, Culling은 다음 세 가지 경우로 처리된다:1. 현재 노드가 카메라 영역 밖에 있는 경우현재 노드를 포함한 모든 자식 노드를 렌더링하지 않는다.2. 현재 노드가 카메라 영역 내부에 있는 경우현재 노드와 모든 자식 노드를 렌더링한..

Computer Graphics/ALEngine 2025. 2. 17. 20:44

ALEngine: 게임 엔진 제작 합류 - (0)

ALEngine 이란 After Life Engine의 약자로 우리 팀에서 제작 중인 게임 엔진의 이름이다.ALEngine에 렌더링 엔진이 이식된 상태에서 나의 FT_Newton 물리 엔진도 이식에 성공하였다. 앞으로는 물리 엔진의 Develop 뿐 아니라 ALE 게임 엔진의 최적화 및 기능 추가에도 참여할 예정이다!! https://github.com/Very-Real-Engine/ALEngine GitHub - Very-Real-Engine/ALEngine: This is an GAME ENGINE made by 42 Very-Real-Engine Team.This is an GAME ENGINE made by 42 Very-Real-Engine Team. - Very-Real-Engine/ALEng..

Computer Graphics/ALEngine 2025. 2. 17. 18:29

추가 정보

인기글

최신글

페이징

이전
1 2 3 4 5 ··· 8
다음
TISTORY
꾸준히 개발하자 © Magazine Lab
페이스북 트위터 인스타그램 유투브 메일

티스토리툴바