Notice
Recent Posts
Recent Comments
Link
관리 메뉴

λͺ©λ‘μ „체 κΈ€ (1103)

KoreanFoodie's Study

[언리얼] μ–Έλ¦¬μ–Όμ—μ„œ 더티 ν”Œλž˜κ·Έ(Dirty Flag) νŒ¨ν„΄ μ‚¬μš©ν•˜κΈ°

더티 ν”Œλž˜κ·Έ νŒ¨ν„΄μ΄λž€? 더티 ν”Œλž˜κ·Έ νŒ¨ν„΄μ— λŒ€ν•΄μ„œλŠ”, 이전 λΈ”λ‘œκ·Έ κΈ€μ—μ„œ κ°„λ‹¨ν•˜κ²Œ μ–ΈκΈ‰ν•œ λ°” μžˆλ‹€. 더티 ν”Œλž˜κ·Έ νŒ¨ν„΄μ€ 일반적으둜 λ Œλ”λ§ κ³Όμ •μ—μ„œ, 계측 ꡬ쑰가 μ‘΄μž¬ν•  경우, ν•„μš”ν•  λ•Œ / ν•„μš”ν•œ 타이밍에 화면을 κ°±μ‹ ν•˜λŠ” λΆ€λΆ„μ—μ„œ 자주 쓰인닀. λ˜ν•œ 더티 ν”Œλž˜κ·Έλ₯Ό 체크해 UI λ₯Ό κ°±μ‹ ν•˜κ²Œ 되면, Tick λ§ˆλ‹€ UI μ—…λ°μ΄νŠΈκ°€ μ€‘λ³΅ν•΄μ„œ μΌμ–΄λ‚˜λŠ” 것을 막을 수 μžˆλ‹€. κ·Έλ ‡λ‹€λ©΄ 이 νŒ¨ν„΄μ„ μ–Έλ¦¬μ–Όμ—μ„œλŠ” μ–΄λ–€ λ°©μ‹μœΌλ‘œ μ μš©ν•΄ λ³Ό 수 μžˆμ„κΉŒ? 예λ₯Ό λ“€μ–΄, μš°λ¦¬κ°€ μ–΄λ–€ UI λ₯Ό κ°±μ‹  ν•˜λŠ”λ°,Dirty Flag λ₯Ό 두어 ν•΄λ‹Ή 더티 ν”Œλž˜κ·Έκ°€ 켜져 μžˆμ„ λ•Œλ§Œ UI λ₯Ό κ°±μ‹ ν•œλ‹€κ³  κ°€μ •ν•΄ 보자. 일단, μ‹€μ œλ‘œ UI 클래슀λ₯Ό λ§Œλ“€κΈ° 전에, 더티 ν”Œλž˜κ·Έ νŒ¨ν„΄μ„ μ‚¬μš©ν•  μœ„μ ―λ“€μ΄ κ³΅ν†΅μ μœΌλ‘œ μ‚¬μš©ν•  μΈν„°νŽ˜μ΄μŠ€λ₯Ό λ‹€μŒκ³Ό 같이 μ •μ˜ν•  수..

Game Dev/Unreal C++ : Dev Log 2022. 12. 1. 18:09
[언리얼] μœ„μ ― λ¦¬ν”Œλ ‰ν„° - 언리얼 μœ„μ ― 디버깅

μœ„μ ― λ¦¬ν”Œλ ‰ν„° μ–Έλ¦¬μ–Όμ˜ μœ„μ ― λ¦¬ν”Œλ ‰ν„° κΈ°λŠ₯을 μ΄μš©ν•˜λ©΄, ν˜„μž¬ ν”Œλ ˆμ΄ν•˜κ³  μžˆλŠ” μ°½μ—μ„œ μ–΄λ–€ μœ„μ ―μ΄ μ–΄λ–€ λΈ”λ£¨ν”„λ¦°νŠΈλ₯Ό μ‚¬μš©ν•˜κ³  μžˆλŠ”μ§€, visibility μƒνƒœλŠ” μ–΄λ– ν•œμ§€ 등을 ν•œλˆˆμ— νŒŒμ•…ν•  수 μžˆλ‹€(μœ„μ ― λ¦¬ν”Œλ ‰ν„° : μ°½ > 개발자 툴 > μœ„μ ― λ¦¬ν”Œλ ‰ν„°). 더 μžμ„Έν•œ 사항은 μ΄λ“μš°λ‹˜ λΈ”λ‘œκ·Έμ˜ 에디터 ν™•μž₯ 기초 글을 μ°Έκ³ ν•˜μž. μœ„μ˜ 히트 ν…ŒμŠ€νŠΈ κ°€λŠ₯ μœ„μ ―μ„ λˆ„λ₯΄λ©΄, λ‹€μŒκ³Ό 같이 ν”Œλ ˆμ΄ ν™”λ©΄κ³Ό μœ„μ ― λ¦¬ν”Œλ ‰ν„° 창이 λ°”λ€ŒλŠ” 것을 확인할 수 μžˆλ‹€(μ΄λ―Έμ§€λŠ” 곡식 λ¬Έμ„œμ—μ„œ κ°€μ Έμ˜΄) ν•΄λ‹Ή μœ„μ ―μ˜ 계측 ꡬ쑰λ₯Ό νŒŒμ•…ν•  수 있으며, μ‹€μ‹œκ°„μœΌλ‘œ μœ„μ ―μ„ 끄고 킬 μˆ˜λ„ μžˆμ–΄ μœ„μ ― κ΄€λ ¨ 디버깅에 맀우 μœ μš©ν•œ κΈ°λŠ₯이닀!

Game Dev/Unreal C++ : Study 2022. 11. 16. 19:53
Boost.Asio 의 κ°œλ… 및 μš”μ•½ 정리

Asio λŠ” Asynchronous IO 의 μ•½μžμ΄λ‹€. Asio λ₯Ό μ΄ν•΄ν•˜κΈ° μœ„ν•΄μ„œλŠ”, λ‹€μŒκ³Ό 같은 μš©μ–΄λ“€μ„ μ•Œκ³  μžˆμ–΄μ•Ό ν•œλ‹€. IO Service 클래슀 : μ»€λ„μ—μ„œ λ°œμƒν•œ μž…μΆœλ ₯ 이벀트λ₯Ό λ””μŠ€νŒ¨μΉ˜ ν•΄μ£ΌλŠ” κΈ°λŠ₯을 μˆ˜ν–‰. λ””μŠ€νŒ¨μΉ˜λž€, μš°μ„ μˆœμœ„κ°€ 높은 μž‘μ—…μ΄ μš°μ„ μ μœΌλ‘œ μˆ˜ν–‰λ  수 μžˆλ„λ‘ μ‹œμŠ€ν…œ μžμ›μ„ ν• λ‹Ήν•˜λŠ” 것을 μ˜λ―Έν•œλ‹€. IO Service ν΄λž˜μŠ€λŠ” μ»€λ„μ—μ„œ λ°œμƒν•œ λ„€νŠΈμ›Œν¬μƒμ˜ 접속 및 데이터 처리 이벀트λ₯Ό μ²˜λ¦¬ν•œλ‹€. 쒅단점(Endpoint) : λ„€νŠΈμ›Œν¬ μƒμ˜ νŠΉμ • μ»΄ν“¨ν„°μ—μ„œ μ‹€ν–‰λ˜κ³  μžˆλŠ” ν•˜λ‚˜μ˜ ν”„λ‘œκ·Έλž¨. ꡬ체적으둜 IP μ£Όμ†Œμ™€ 포트 번호의 ν•œ μŒμ„ 쒅단점이라고 함. DNS(Domain Name Server) : Boost Asio μ—μ„œλŠ” 도메인 μ£Όμ†Œλ₯Ό 이용, IP μ£Όμ†Œλ₯Ό μ•Œμ•„λ‚΄μ–΄ 쒅단점을 κ΅¬ν•œλ‹€. ..

Game Dev/Game Server 2022. 11. 1. 14:09
κ²Œμž„ μˆ˜ν•™ - λ³€ν™˜ ν–‰λ ¬μ˜ μ—­ν–‰λ ¬

μ΄λ“μš°λ‹˜μ˜ 'μ΄λ“μš°μ˜ κ²Œμž„μˆ˜ν•™' 책을 보며 쒋은 λ‚΄μš©μ„ μ •λ¦¬ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. 더 μžμ„Έν•œ λ‚΄μš©μ΄ κΆκΈˆν•˜μ‹œλ‹€λ©΄, 책을 ꡬ맀해 직접 μ½μ–΄λ³΄μ‹œκΈ°λ₯Ό μΆ”μ²œλ“œλ¦½λ‹ˆλ‹€! λ³€ν™˜ ν–‰λ ¬μ˜ μ—­ν–‰λ ¬ λ‹€μ–‘ν•œ λ³€ν™˜ ν–‰λ ¬λ“€μ˜ 역행렬을 μ•Œμ•„λ³΄μž. 크기 λ³€ν™˜ν–‰λ ¬ 각 κΈ°μ €λ²‘ν„°μ˜ 크기λ₯Ό 각각 a, b 만큼 ν‚€μš°λŠ” 크기 λ³€ν™˜ν–‰λ ¬μ˜ 역행렬은 λ‹€μŒκ³Ό κ°™λ‹€. 전단 λ³€ν™˜ν–‰λ ¬ ν‰ν–‰μ‚¬λ³€ν˜• 처럼 λ―Έλ„λŸ¬μ§€κ²Œ 생긴 전단 λ³€ν™˜ν–‰λ ¬μ˜ 역행렬은 λ‹€μŒκ³Ό κ°™λ‹€. νšŒμ „ λ³€ν™˜ν–‰λ ¬ νšŒμ „ λ³€ν™˜ν–‰λ ¬μ˜ 역행렬은 λ‹€μŒκ³Ό κ°™λ‹€. θ 만큼 λ°˜μ‹œκ³„ λ°©ν–₯으둜 νšŒμ „μ‹œν‚€λŠ” ν–‰λ ¬μ˜ 역행렬을 κ΅¬ν•˜κΈ° μœ„ν•΄μ„œλŠ”, -θ 만큼 λ°˜μ‹œκ³„ λ°©ν–₯으둜 νšŒμ „μ‹œν‚€λŠ” 행렬을 생각해보면 λœλ‹€! μ‚Όκ°ν•¨μˆ˜μ˜ μ„±μ§ˆμ„ μ΄μš©ν•˜λ©΄ κ°„λ‹¨νžˆ ꡬ할 수 μžˆλ‹€.

Game Dev/Game Math 2022. 10. 29. 09:47
Effective Modern C++ λ‚΄μš© μš”μ•½ 총 정리 리슀트

μ•½ 두 달간 읽으며 μ •λ¦¬ν•˜κ³  μš”μ•½ν•œ Effective C++ 와 Effective Modern C++ κ²Œμ‹œκΈ€λ“€μ— λŒ€ν•œ 리슀트 μš”μ•½κΈ€μž…λ‹ˆλ‹€. κ°œλ°œν•˜μ‹€λ•Œ μ°Έκ³ ν•˜μ‹œκΈΈ 바라며, 직접 μ‚¬μ„œ μ½μ–΄λ³΄μ‹œκΈΈ κ°•μΆ”λ“œλ¦½λ‹ˆλ‹€! 1μž₯ ν˜•μ‹ μ—°μ—­ ν•­λͺ© 1: ν…œν”Œλ¦Ώ ν˜•μ‹ μ—°μ—­ κ·œμΉ™μ„ μˆ™μ§€ν•˜λΌ ν•­λͺ© 2: auto의 ν˜•μ‹ μ—°μ—­ κ·œμΉ™μ„ μˆ™μ§€ν•˜λΌ ν•­λͺ© 3: decltype의 μž‘λ™ 방식을 μˆ™μ§€ν•˜λΌ ν•­λͺ© 4: μ—°μ—­λœ ν˜•μ‹μ„ νŒŒμ•…ν•˜λŠ” 방법을 μ•Œμ•„λ‘λΌ 2μž₯ auto ν•­λͺ© 5: λͺ…μ‹œμ  ν˜•μ‹ μ„ μ–Έλ³΄λ‹€λŠ” autoλ₯Ό μ„ ν˜Έν•˜λΌ ν•­λͺ© 6: autoκ°€ μ›μΉ˜ μ•Šμ€ ν˜•μ‹μœΌλ‘œ 연역될 λ•Œμ—λŠ” λͺ…μ‹œμ  ν˜•μ‹μ˜ 초기치λ₯Ό μ‚¬μš©ν•˜λΌ 3μž₯ ν˜„λŒ€μ  C++에 μ μ‘ν•˜κΈ° ν•­λͺ© 7: 객체 생성 μ‹œ κ΄„ν˜Έ(())와 μ€‘κ΄„ν˜Έ({})λ₯Ό κ΅¬λΆ„ν•˜λΌ ν•­λͺ© 8: 0κ³Ό NULL보닀 nullptrλ₯Ό μ„ ..

Tutorials/C++ : Advanced 2022. 10. 27. 12:24
Effective C++ λ‚΄μš© μš”μ•½ 총 정리 리슀트

μ•½ 두 달간 읽으며 μ •λ¦¬ν•˜κ³  μš”μ•½ν•œ Effective C++ 와 Effective Modern C++ κ²Œμ‹œκΈ€λ“€μ— λŒ€ν•œ 리슀트 μš”μ•½κΈ€μž…λ‹ˆλ‹€. κ°œλ°œν•˜μ‹€λ•Œ μ°Έκ³ ν•˜μ‹œκΈΈ 바라며, 직접 μ‚¬μ„œ μ½μ–΄λ³΄μ‹œκΈΈ κ°•μΆ”λ“œλ¦½λ‹ˆλ‹€! Chapter 1 C++에 μ™”μœΌλ©΄ C++의 법을 λ”°λ¦…μ‹œλ‹€ ν•­λͺ© 1: C++λ₯Ό μ–Έμ–΄λ“€μ˜ μ—°ν•©μ²΄λ‘œ λ°”λΌλ³΄λŠ” μ•ˆλͺ©μ€ ν•„μˆ˜ ν•­λͺ© 2: #define을 μ“°λ €κ±°λ“  const, enum, inline을 λ– μ˜¬λ¦¬μž ν•­λͺ© 3: λ‚Œμƒˆλ§Œ 보이면 constλ₯Ό λ“€μ΄λŒ€ 보자! ν•­λͺ© 4: 객체λ₯Ό μ‚¬μš©ν•˜κΈ° 전에 λ°˜λ“œμ‹œ κ·Έ 객체λ₯Ό μ΄ˆκΈ°ν™”ν•˜μž Chapter 2 μƒμ„±μž, μ†Œλ©Έμž 및 λŒ€μž… μ—°μ‚°μž ν•­λͺ© 5: C++κ°€ μ€κ·ΌμŠ¬μ© λ§Œλ“€μ–΄ ν˜ΈμΆœν•΄ λ²„λ¦¬λŠ” ν•¨μˆ˜λ“€μ— 촉각을 μ„Έμš°μž ν•­λͺ© 6: μ»΄νŒŒμΌλŸ¬κ°€ λ§Œλ“€μ–΄λ‚Έ ν•¨μˆ˜κ°€ ν•„μš” μ—†μœΌλ©΄ ν™•μ‹€νžˆ μ΄λ“€μ˜ μ‚¬μš©μ„ ..

Tutorials/C++ : Advanced 2022. 10. 26. 10:32
Effective Modern C++ | ν•­λͺ© 42 : μ‚½μž… λŒ€μ‹  생성 μ‚½μž…μ„ κ³ λ €ν•˜λΌ

C++ ν”„λ‘œκ·Έλž˜λ¨Έμ˜ ν•„λ…μ„œμ΄μž 바이블인, 슀콧 λ§ˆμ΄μ–΄μŠ€μ˜ Modern Effective C++ λ₯Ό 읽고 κΈ°μ–΅ν•  λ‚΄μš©μ„ μš”μ•½ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. κΌ­ μ½μ–΄λ³΄μ‹œκΈΈ μΆ”μ²œλ“œλ¦½λ‹ˆλ‹€! ν•­λͺ© 42 : μ‚½μž… λŒ€μ‹  생성 μ‚½μž…μ„ κ³ λ €ν•˜λΌ 핡심 : 1. 이둠적으둜, 생성 μ‚½μž… ν•¨μˆ˜λ“€μ€ μ’…μ’… ν•΄λ‹Ή μ‚½μž… 버전보닀 더 νš¨μœ¨μ μ΄μ–΄μ•Ό ν•˜λ©°, 덜 효율적인 κ²½μš°λŠ” μ ˆλŒ€λ‘œ μ—†μ–΄μ•Ό ν•œλ‹€. 2. μ‹€μ§ˆμ μœΌλ‘œ, (1) μΆ”κ°€ν•  값이 μ»¨ν…Œμ΄λ„ˆμ— λ°°μ •λ˜λŠ” 것이 μ»¨ν…Œμ΄λ„ˆμ— λ°°μ •λ˜λŠ” 것이 μ•„λ‹ˆλΌ μ»¨ν…Œμ΄λ„ˆ μ•ˆμ—μ„œ μƒμ„±λ˜κ³ , (2) 인수 ν˜•μ‹(λ“€)이 μ»¨ν…Œμ΄λ„ˆκ°€ λ‹΄λŠ” ν˜•μ‹κ³Ό λ‹€λ₯΄κ³ , (3) κ·Έ 값이 μ€‘λ³΅λœ 값이어도 μ»¨ν…Œμ΄λ„ˆκ°€ κ±°λΆ€ν•˜μ§€ μ•ŠλŠ”λ‹€λ©΄, 생성 μ‚½μž… ν•¨μˆ˜κ°€ μ‚½μž… ν•¨μˆ˜λ³΄λ‹€ λΉ λ₯Ό κ°€λŠ₯성이 μ•„μ£Ό 크닀. 3. 생성 μ‚½μž… ν•¨μˆ˜λŠ” μ‚½μž… ν•¨μˆ˜λΌλ©΄ κ±°λΆ€λ‹Ήν–ˆμ„ ν˜•μ‹ λ³€ν™˜λ“€μ„ ..

Tutorials/C++ : Advanced 2022. 10. 26. 10:09
Effective Modern C++ | ν•­λͺ© 41 : 이동이 μ €λ ΄ν•˜κ³  항상 λ³΅μ‚¬λ˜λŠ” 볡사 κ°€λŠ₯ λ§€κ°œλ³€μˆ˜μ— λŒ€ν•΄μ„œλŠ” κ°’ 전달을 κ³ λ €ν•˜λΌ

C++ ν”„λ‘œκ·Έλž˜λ¨Έμ˜ ν•„λ…μ„œμ΄μž 바이블인, 슀콧 λ§ˆμ΄μ–΄μŠ€μ˜ Modern Effective C++ λ₯Ό 읽고 κΈ°μ–΅ν•  λ‚΄μš©μ„ μš”μ•½ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. κΌ­ μ½μ–΄λ³΄μ‹œκΈΈ μΆ”μ²œλ“œλ¦½λ‹ˆλ‹€! ν•­λͺ© 41 : 이동이 μ €λ ΄ν•˜κ³  항상 λ³΅μ‚¬λ˜λŠ” 볡사 κ°€λŠ₯ λ§€κ°œλ³€μˆ˜μ— λŒ€ν•΄μ„œλŠ” κ°’ 전달을 κ³ λ €ν•˜λΌ 핡심 : 1. 이동이 μ €λ ΄ν•˜κ³  항상 λ³΅μ‚¬λ˜λŠ” 볡사 κ°€λŠ₯ λ§€κ°œλ³€μˆ˜μ— λŒ€ν•΄μ„œλŠ” κ°’ 전달이 μ°Έμ‘° μ „λ‹¬λ§ŒνΌμ΄λ‚˜ 효율적이고, κ΅¬ν˜„ν•˜κΈ°κ°€ 더 쉽고, μ‚°μΆœλ˜λŠ” λͺ©μ  μ½”λ“œμ˜ 크기도 더 μž‘λ‹€. 2. μ™Όκ°’ 인수의 경우 κ°’ 전달(즉, 볡사 생성) λ‹€μŒμ˜ 이동 배정은 μ°Έμ‘° 전달 λ‹€μŒμ˜ 볡사 배정보닀 훨씬 λΉ„μŒ€ κ°€λŠ₯성이 μžˆλ‹€. 3. κ°’ μ „λ‹¬μ—μ„œλŠ” 잘림 λ¬Έμ œκ°€ λ°œμƒν•  수 μžˆμœΌλ―€λ‘œ, 일반적으둜 기반 클래슀 λ§€κ°œλ³€μˆ˜ ν˜•μ‹μ— λŒ€ν•΄μ„œλŠ” κ°’ 전달이 μ ν•©ν•˜μ§€ μ•Šλ‹€. Widget 클래..

Tutorials/C++ : Advanced 2022. 10. 26. 10:09