Home About
About
Cancel

About

πŸ’‘Projects

개인 ν”„λ‘œμ νŠΈ ν•­λͺ©μž…λ‹ˆλ‹€.

2022

Anim v0.1.0



πŸ•Ί Anim




ν•­λͺ©μ„€λͺ…
μš”μ•½β€œκ²Œμž„ μ• λ‹ˆλ©”μ΄μ…˜ μ œμž‘μ„ λ„μ™€μ£ΌλŠ” μ• λ‹ˆλ©”μ΄μ…˜ νˆ΄β€
β€œμ‚¬λžŒμ΄ λ“±μž₯ν•˜λŠ” μ˜μƒμ„ μ• λ‹ˆλ©”μ΄μ…˜ λ°μ΄ν„°λ‘œ λ³€ν™˜ν•  수 μžˆλŠ” μ• λ‹ˆλ©”μ΄μ…˜ νˆ΄β€
μ†ŒμŠ€source
κΈ°κ°„2022.03.10 ~ 2022.07.04 (GUI, FK, video to animation κ΅¬ν˜„)
2022.08.04 ~ 2022.09.08 (μ• λ‹ˆλ©”μ΄μ…˜ νŽΈμ§‘ κ΄€λ ¨ κ΅¬ν˜„)
2022.10.23 ~ 2022.10.25 (SMPL to Mixamo λ¦¬νƒ€κ²Ÿν„° κ΅¬ν˜„)
인원1인 개발
κΈ°λŠ₯μ• λ‹ˆλ©”μ΄μ…˜ 파일 생성(import, export)
μ• λ‹ˆλ©”μ΄μ…˜ μžλ™ 생성
μ• λ‹ˆλ©”μ΄μ…˜ μˆ˜μ •
포맷 λ³€ν™˜
μ œν•œμ  λ¦¬νƒ€κ²ŸνŒ…
기술, ν”„λ ˆμž„μ›Œν¬, 라이브러리, APIμ‚¬μš© 이유
C++μ„±λŠ₯, μ‹ λ’°κ°€λŠ₯ν•œ 라이브러리
OpenGLλ‹€μ–‘ν•œ ν”Œλž«νΌ 지원
Python인곡지λŠ₯ ν”„λ ˆμž„μ›Œν¬, ν™•μž₯μ„±, λ‹€μ–‘ν•œ ν”Œλž˜λž«νΌ 지원, 인터프리터
ImGUI외뢀쒅속성이 크지 μ•ŠμŒ, λ‹€μ–‘ν•œ λ°±μ—”λ“œ 지원
Assimpλ‹€μ–‘ν•œ 포맷 지원
Mediapipeμ˜€ν”ˆμ†ŒμŠ€ HPE(Human Pose Estimation) 쀑 κ°€λ²Όμš°λ©΄μ„œ μ„±λŠ₯이 μ’‹μŒ
Animation toolVideo to Animation (only mixamorig character)
retarget(before)retarget(after)


  • 리뷰
    • λ‹€μ–‘ν•œ ν™˜κ²½μ„ μ§€μ›ν•˜κΈ° μœ„ν•΄ OpenGL, C++, Python 을 μ‚¬μš©ν–ˆμŒμ—λ„ λΆˆκ΅¬ν•˜κ³  λͺ‡λͺ‡ ν™˜κ²½μ—μ„œ μ œλŒ€λ‘œ λ™μž‘ν•˜μ§€ μ•Šμ•˜κ³ , 원인 νŒŒμ•…μ„ 잘 ν•˜μ§€ λͺ»ν•˜μ˜€μŒ
      • 개발 μ΄ˆκΈ°λ‹¨κ³„μ—μ„œ 둜그기λŠ₯을 ν™•μ‹€νžˆ 지원해야함을 λŠλ‚Œ
    • ꡬ쑰가 μ»€μ§€λ©΄μ„œ μ΄ˆκΈ°μ— μ„€κ³„ν–ˆλ˜ 객체λ₯Ό λΉˆλ²ˆν•˜κ²Œ μˆ˜μ •ν•˜μ˜€μŒ
      • 특히, entity의 μ •μ˜μ— λŒ€ν•΄μ„œ 그랬음. μ²˜μŒμ—” entityμ—μ„œ νŠΉμ •ν•œ λ‘œμ§μ„ μˆ˜ν–‰ν•˜λŠ” ν•¨μˆ˜λ₯Ό λ‘μ—ˆμŒ. 후에 μ»΄ν¬λ„ŒνŠΈ 기반으둜 κ΅¬ν˜„ν•˜μ˜€κ³ , νŠΉμ •ν•œ λ‘œμ§μ„ μ»΄ν¬λ„ŒνŠΈμ—μ„œ μ‹€ν–‰ν•˜λŠ” 방법을 μ‚¬μš©ν•¨
      • λ¬΄μž‘μ • κ°œλ°œν•˜κΈ° λ³΄λ‹€λŠ” ν•„μš”ν•œ κΈ°λŠ₯듀을 μ •μ˜ν•œ ν›„ 클래슀λ₯Ό 섀계해야함을 λŠλ‚Œ
    • CI/CD (Github Action) 을 μ‚¬μš©ν•΄λ³΄κ³  μ–΄λŠ ν•œ ν”Œλž«νΌμ—μ„œ β€œλΉŒλ“œκ°€ μ œλŒ€λ‘œ λ˜λŠ”μ§€β€ λ₯Ό 확인할 수 μžˆμ–΄ νŽΈλ¦¬ν•˜μ˜€μŒ μ•žμœΌλ‘œλ„ 이λ₯Ό μ‚¬μš©ν•˜λ©΄ 쒋을 것 κ°™μŒ
    • λ‘œμ»¬λΌμ΄μ§•μ˜ μ€‘μš”μ„±μ„ μ•Œκ²Œλ¨. μ΄ˆκΈ°μ—λŠ” λ‘œμ»¬λΌμ΄μ§•μ„ μ‹ κ²½μ“°μ§€μ•Šμ•˜κ³  후에 이λ₯Ό μ§€μ›ν•˜λ €κ³  ν•˜λ‹ˆ μ™€μ΄λ“œ λ¬Έμžμ—΄λ‘œ μ „λΆ€ μˆ˜μ •ν•΄μ•Όν•˜λŠ” 일이 ν•„μš”ν–ˆμŒ
      • μ „λΆ€ λ³€κ²½ν•˜κΈ°λ³΄λ‹€λŠ” 이λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄ utf-8 컴파일 μ˜΅μ…˜μ„ μ§€μ›ν•˜λŠ” MSVC둜 λ³€κ²½ (μ΄μ „μ—λŠ” gcc둜 κ°œλ°œν•˜μ—¬ μœˆλ„μš°, λ§₯의 ν™˜κ²½μ„ 맞좀, μœˆλ„μš°μ—μ„œ gcc의 utf-8 섀정이 λ¨Ήνžˆμ§€ μ•Šμ•˜μŒ)
  • μ–΄λ €μ› λ˜ 점
    • λͺ¨λΈ μ‘°μž‘ => μ• λ‹ˆλ©”μ΄μ…˜ 데이터 μˆ˜μ •
    • 데이터 μˆ˜μ • μ‹€ν–‰ μ·¨μ†Œ κΈ°λŠ₯
    • μ˜μƒμ—μ„œ μ• λ‹ˆλ©”μ΄μ…˜ λ°μ΄ν„°λ‘œ 맀핑
      • IK μ•Œκ³ λ¦¬μ¦˜μ„ μ‚¬μš©ν•˜μ—¬ μ’Œν‘œλ₯Ό λ°”μΈλ”©ν¬μ¦ˆμ™€ μƒλŒ€μ μΈ νšŒμ „κ°’μœΌλ‘œ λ³€ν™˜
    • μ• λ‹ˆλ©”μ΄μ…˜ 데이터 μž„ν¬νŠΈ 읡슀포트
      • Assimp 읡슀포트 κΈ°λŠ₯을 μ‚¬μš©ν•˜λŠ”λ° λ¬Έμ œκ°€ 생김 => Assimp μ½”λ“œλ₯Ό μˆ˜μ •ν•˜μ—¬ μ‚¬μš©
      • Assimp 읡슀포트 κΈ°λŠ₯을 μ‚¬μš©ν•˜λŠ”λ° λ¬Έμ œκ°€ 생김 => Blender와 Anim 읡슀포트 결과물을 λΉ„κ΅ν•˜μ—¬ μ• λ‹ˆλ©”μ΄μ…˜ 데이터 νŠΉμ„± νŒŒμ•…, κ²Œμž„μ— μ‚¬μš©ν•˜λ €λ©΄ μ• λ‹ˆλ©”μ΄μ…˜ 데이터가 연속적이어야함을 μ•Œκ²Œλ¨
    • C++μ—μ„œ Python 인곡지λŠ₯ ν”„λ ˆμž„μ›Œν¬μΈ Mediapipeλ₯Ό μ‹€ν–‰
    • 였브젝트 ν”Όν‚Ή
      • λͺ¨λΈμ˜ 였브젝트λ₯Ό ν”Όν‚Ήν•  λ•Œ λͺ¨λΈκ³Ό 뼈λ₯Ό κ΅¬λΆ„ν•˜κΈ° μœ„ν•΄ ν…μŠ€μ²˜ RGB λΉ„νŠΈμ— β€˜μ˜€λΈŒμ νŠΈ id + 뼈 id’ 둜 μ„€μ •ν•˜μ—¬ κ΅¬ν˜„ν•¨
      • 이λ₯Όν†΅ν•΄ λΌˆκ°€ λ Œλ”λ§λ˜λ“  μ•ˆλ˜λ“  뼈λ₯Ό ν”Όν‚Ήν•  수 있게 κ΅¬ν˜„ν•¨

procedural 3d terrain



⛰️ procedural 3d terrain

  • ν”„λ‘œμ νŠΈ κΈ°κ°„: 2μ£Ό
  • 기술: OpenGL, C++, Python, AI Framework
  • μ„€λͺ…
    • Procedural3DTerrain 을 보고 이λ₯Ό μ‚¬μš©ν•  수 μžˆλŠ” ν”„λ‘œκ·Έλž¨μ„ μ œμž‘ν•¨.
    • 쑰건에 따라 μ›ν•˜λŠ” μ§€ν˜•μ„ 생성할 수 있게 κ³ μΉ¨ (GANμ—μ„œ CGAN으둜 μ½”λ“œλ₯Ό κ³ μΉ¨, μ›ν•˜λŠ” μ§€ν˜• )
  • μ†ŒμŠ€: Python source, C++ source
guiCGAN result

2021

Hand



🀘 Hand

  • ν”„λ‘œμ νŠΈ κΈ°κ°„: 2μ£Όλ™μ•ˆ 2개의 ν”„λ‘œμ νŠΈλ₯Ό μˆ˜ν–‰ν•˜μ˜€μŠ΅λ‹ˆλ‹€.

1. 🫳 Virtual Hand

  • 기술: vulkan, C++, Python
  • μ„€λͺ…: μ‚¬λžŒμ˜ 손 λ™μž‘μ— 따라 μ›€μ§μ΄λŠ” κ°€μƒμ˜ 손을 λ Œλ”λ§
  • μ†ŒμŠ€: source
    • physics: box2d
    • hand estimation: mediapipe

2. πŸ‘ Hand Pinball

  • 기술: Python
  • μ„€λͺ…: 손가락을 움직여 핀볼을 ν”Œλ ˆμ΄
  • μ†ŒμŠ€: source


genetic painting



🧬 genetic painting

  • OpenGL κ³Ό Vulkan κ·Έλž˜ν”½μŠ€ API의 차이점을 ν™•μΈν•˜κΈ° μœ„ν•œ ν”„λ‘œμ νŠΈ
    • OpenGLκ³ΌλŠ” λ‹€λ₯Έ Vulkan의 비동기 νŠΉμ§•μ„ μ‚¬μš©ν•˜μ—¬ 더 λΉ λ₯΄κ²Œ λ Œλ”λ§λ˜λŠ” 것을 확인할 수 μžˆμ—ˆμŒ.
  • μ„€λͺ…: μœ μ „ μ•Œκ³ λ¦¬μ¦˜μ„ μ‚¬μš©ν•˜μ—¬ μ‚¬λžŒμ΄ 그림을 κ·Έλ¦¬λŠ” 것 처럼 보이게 ν•˜λŠ” ν”„λ‘œκ·Έλž¨

1. 🎨 Vulkan Painting

  • 기술: vulkan, C++
  • μ†ŒμŠ€: vk-source
220 x 220 1min ~ 3min512 x 512 3min ~ 10min

2. πŸ–ΌοΈ OpenGL Painting

  • 기술: OpenGL, C++
  • μ†ŒμŠ€: gl-source





πŸ’‘ κ·Έ μ™Έ Projects

YesTrip: μ—¬ν–‰ κ³„νšμ‚¬μ΄νŠΈ(2023)



🚌 YesTrip: μ—¬ν–‰ κ³„νš μ‚¬μ΄νŠΈ

  • μ‹œμ—° μ˜μƒ
  • 인원: 2인
  • μ—­ν• : 지도 κ΄€λ ¨ ν”„λ‘ νŠΈ, λ°±μ•€λ“œ
  • κΈ°κ°„: 7일 (2023.05)
  • μ„€λͺ…: μ—¬ν–‰ κ³„νšμ„ μ„ΈμšΈ 수 있고, μ§€λ„μ—μ„œ κ΅­λ‚΄ 관광지 정보λ₯Ό 얻을 수 μžˆλŠ” μ›Ή νŽ˜μ΄μ§€
  • κ΄€λ ¨ ν‚€μ›Œλ“œ: js, Vue.js, leaflet, osrm ,SPA , MyBatis, Spring boot

이미지 데이터λ₯Ό ν†΅ν•œ 이λ₯œμ°¨ μ‚¬κ³ λ‹€λ°œμ§€ 예츑(2022)



🏍️ 이미지 데이터λ₯Ό ν†΅ν•œ 이λ₯œμ°¨ μ‚¬κ³ λ‹€λ°œμ§€ 예츑(2022)

  • μ†ŒμŠ€
  • 인원: 2인 (기획, ν”„λ‘œκ·Έλž˜λ°)
  • μ—­ν• : ν”„λ‘œκ·Έλž˜λ°μ„ 담당함
  • μ„€λͺ…: 이λ₯œμ°¨ 사고가 자주 μΌμ–΄λ‚˜λŠ” λ„λ‘œ 이미지 데이터λ₯Ό ν•™μŠ΅μ‹œμΌœ 이λ₯œμ°¨κ°€ μ§€λ‚˜κ°€λ©΄ μœ„ν—˜ν•œ λ„λ‘œλ₯Ό μ•Œλ €μ£ΌλŠ” 인곡지λŠ₯ λͺ¨λΈμ„ 개발
  • κΈ°λŒ€νš¨κ³Ό
    • 이λ₯œμ°¨ 사고가 자주 μΌμ–΄λ‚˜λŠ” λ„λ‘œλ₯Ό μ°Ύμ•„ 경고판 등을 μ„€μΉ˜ν•˜μ—¬ μœ„ν—˜μ„ 방지할 수 있음
    • λ„λ‘œ 개편 λ˜λŠ” λ„λ‘œ 건섀 κ³„νš μ‹œ 더 μ•ˆμ „ν•œ λ„λ‘œλ₯Ό 섀계할 수 있음
  • ν•œκ³„: ν•˜λ“œμ›¨μ–΄ μ„±λŠ₯ 문제둜 데이터 μˆ˜κ°€ μ μ—ˆμŒ
  • κ΄€λ ¨ ν‚€μ›Œλ“œ: Python, QGIS, GAN

Avoid Shoot Bounce(2019)



⚽ Avoid Shoot Bounce

  • 데λͺ¨ μ˜μƒ
  • 인원: 1인
  • κΈ°κ°„: 2019.04.02 ~ 2019.04.07
  • μ„€λͺ…: κ΅°λŒ€κ°€κΈ°μ „ 5μΌλ™μ•ˆ κ°œλ°œν•œ κ°„λ‹¨ν•œ μŠˆνŒ… κ²Œμž„μž…λ‹ˆλ‹€.
  • ν‚€μ›Œλ“œ: μœ λ‹ˆν‹°, 좩돌, μ˜€λΈŒμ νŠΈν’€