일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 가상 바이트
- Virtual Byte
- ColorGradingLutPass
- AppSW
- Cartoon Rendering
- 게임 수학
- Specular
- 개인 바이트
- ASW(Application SpaceWarp)
- 3d
- OculusMotionVectorPass
- Cell Look
- URP로 변경
- Rim Light
- Cell Shader
- Three(Two) Tone Shading
- URP
- Toon Shader
- 작업 집합
- C언어
- 메모리 누수
- 벡터
- Windows Build
- Private Bytes
- VR
- 프로그래밍 기초
- working set
- Today
- Total
목록분류 전체보기 (258)
WinCNT
Skinnig Animation 다른 말로 Skeletal Animation 버텍스가 여러 개의 Bone의 가중치(Weight)를 가지고 있으며 가중치에 따라 버텍스의 위치 등을 보간해서 애니메이션하는 기법을 말한다 관절 등부드럽게 이어져야 하는 부분에는 다 적용할 수 있다 3D Max Exporter 3D Max의 ASE 익스포트의 디폴트 설정으로는 스키닝 값을 출력할 수 없다 SDK를 설치해서 애드온으로 커스터마이징해야 한다 (복잡한 부분이 많음) Bone List Bone0 Bone1 ... WVertex List WVertex 0 Weight 0 0.3(가중치는 합이 1) Weight 1 0.2 Weight 2 0.5 스키닝이 적용되는 오브젝트(버텍스)들은 어떠한 본한테 어느 정도(즉 가중치)로 ..
참고 사이트 https://onecoke.tistory.com/entry/DirectX3D-ASE-File-%EA%B5%AC%EC%A1%B0 [DirectX3D] ASE File 구조 * DirectX 프로젝트에 ASE 파일의 데이터들을 불러올 때 필요한 데이터 목록 및 주의해야할 것들. * 각 데이터에 대한 자세한 정보는 없음. 1. Scene - *SCENE_FIRSTFRAME : 시작 프레임 - *SCENE_LASTFRAME : 마.. onecoke.tistory.com https://community.khronos.org/t/ase-file/45704/5 SSS
성공과 실패를 결정하는 1%의 네트워크 원리의 2장의 일부를 참고해서 정리한 글입니다 1. 소켓을 작성한다 프로토콜 스택: OS에 내장된 네트워크 제어용 소프트웨어 네트워크 통신을 하기 위한 요청 준비라고 생각하자 프로토콜 스택은 OS가 관리한다 주소 - 내 컴퓨터(LAN 카드 - NIC) 프로세스 - 패킷을 송수신 - 포트 번호로 패킷을 주고 받음 netstat -ano 네트워크 스테이트 현재 생성된 모든 소켓을 보여준다 nslookup 도메인 네임에 매핑된 IP 주소를 알려준다 tracert 트레이스 라우트 특정사이트에 접속하기 까지의 IP 경로 추적 ICMP(Internet Control Message Protocol) 소켓의 실체는 통신 제어용 제어 정보 프로토콜 스택은 내부에 제어 정보를 기록하..
데이터는 메모리에 있다 네트워크는? 로컬에 데이터가 없다 우선 전기 신호에 따라서 LAN 카드에 데이터가 도착한다 하지만 받을 준비를 하지 않으면 데이터가 메모리에 올라오지 않아서 응용 계층에서는 사용할 수 없다 데이터를 받을 준비가 바로 소켓이다 TCP와 UDP는 프로토콜 규약(약속)이다 규약에 대해 이해하고 사용해야 한다 소켓은 OS에게 네트워크 통신을 할 것이라고 알려주는 것 소켓을 생성할 때, TCP 소켓을 생성할지 UDP 소켓을 생성할지 결정해야 한다 UDP 패킷은 정렬되지 않은 순서로 도착하며 유실 또한 발생한다 TCP 패킷은 순서와 도착을 보장한다 왜 알아야 하나? --> 트러블 슈팅을 위해서 TCP의 좀비 PC 등 TCP의 세션은 1 대 1, 소켓마다 버퍼가 생긴다 UDP는 1 대 다 따라..
함수 호출 규약(콜링 컨벤션, Calling Convention) 함수 호출 규약이란 함수를 호출하는 방식에 대한 규약(약속)이다 함수를 호출할 때에는 CPU가 함수를 어떻게 처리할 것인지에 대한 규약이 필요하다 함수 호출 규약의 종류는 다음에 따라 구분된다 1. 인자 전달 방법 2. 인자 전달 순서 3. Stack Frame을 정리하는 방법 함수를 호출할 때 호출 규약이 있어야 함 특히 DLL 작성 시 관련 개념이 필수 내가 모르는 코드(DLL)을 붙을 때 호출 규약이 다르면 문제가 발생한다 대표적인 함수 호출 규약으로는 cdecl, stdcall, fastcall이 있으며, 그 외에도 clrcall, thiscall, pascal, syscall, fortran가 있다 EBP 기준 main함수, 특정..
unique_ptr 배타적 소유권 개념이 있는 스마트 소유권 하나의 스마트 포인터만이 특정 객체를 소유할 수 있도록, 객체에 소유권을 도입한 스마트 포인터 일반 포인터와는 달리 사용이 끝난 후에 delete 키워드를 사용하여 메모리를 해제할 필요가 없다 소유권 이전 unique_ptr 인스턴스는 move() 멤버 함수를 통해 소유권을 이전할 수는 있지만, 복사는 할 수 없다 소유권이 이전되면, 이전 u 인스턴스는 더 이상 해당 객체를 소유하지 않게 재설정된다 즉, unique_ptr에서는 =(연산자)로 값 카피가 일어나지 않는다, 이동은 가능하다(소유권 이전) B = A 불가능 B = move(A) 가능 /// /// unique_ptr 구현 예상 /// 복사 생성자를 삭제해서 값 복사가 일어나지 않도록..
Animation Animation : 움직이는 것 시간에 종속적 영상은 Pre-Rendered 게임은 리얼 타임 렌더링 Animation - Computer Graphics Sprite Animation – 비트맵을 교체 전통적인, Lagacy한 2D 게임들, 셀 애니메이션 등 2D Vector – Morph, Transform, Skinning 스파인, 라이브 2D등의 프로그램 참고로 스파인은 3D처럼 작동한다 본이 있고 특정 본에 대한 가중치가 있는 등등 3D Graphics - Morph, Transform, Skinning 현존하는 모든 3D관련 리얼타임 렌더러은 Morph, Transform, Skinning 중 하나 예를 들어 표정이 있는 게임들은 대부분 Skinning Animation –..
TCP/IP 4계층과 소켓 인터넷의 핵심인 TCP/IP는 데이터 전송 과정에서의 역할에 따라 응용 계층, 전송 계층, 인터넷 계층, 네트워크 인터페이스 계층이라는 4개의 계층으로 구성된다 응용 계층과 전송 계층을 소통하기 위해 사용하는 것이 Socket이다 이 Socket을 프로그래밍하므로써 응용 계층에서 송수신 데이터를 다룰 수 있게 된다 소켓이란? 네트워크에서 소켓이란 컴퓨터 네트워크를 경유하는 프로세스 간 통신의 종착점이다 오늘날 대부분의 통신은 인터넷 프로토콜을 기반이므로, 대부분의 네트워크 소켓은 인터넷 소켓이다. 네트워크 통신을 위한 프로그램들은 소켓을 생성하고, 이 소켓을 통해서 서로 데이터를 교환한다 전송 계층, 인터넷 계층, 네트워크 인터페이스 계층의 데이터들은 응용 계층에서 다룰 수 없..
.ASE 파일로부터 Node 정보를 읽어본다 (나중에는 FBX나 Blender의 파이썬 Export 등등) NodeTM 정보를 읽고, Vertex 정보를 재구성 Hierachy Hierarchy(하이어라키, 계층 구조) 계층 구조 - 부모, 자식 관계 부모의 트랜스폼을 자식들이 따라간다 핵심은 World Space Local Space의 변환이다 World Space(세계 공간) 단 하나의 공간 Local Space(지역 공간 / 국소 공간) 오브젝트마다 존재하는 공간 자신을 기준으로 생각한다, 혹은 부모의 트랜스폼을 상속받는다 Camera의 View Space도 일종의 로컬 공간 NodeTM Node_TM 토큰을 만나면 트랜스폼 하나를 만들면 된다 TM_ROW는 행렬의 행 TM_POS 등은 각각의 요소..
메모리를 동적 할당할 경우는 반드시 delete를 해줘야 한다 문제는 Block 안(특히 함수 등)에서 메모리를 동적 할당할 경우이다 블록을 벗어나면 포인터 변수에는 접근할 수 없으니 해제가 불가능해진다 심지어 new-delete를 제대로 해줬다고 해도 다음과 같이 throw가 있으면 문제가 발생할 수 있다 void foo() { double* pDouble { new double }; *pDouble = 3.14; throw...; // delete pDouble; } malloc과 new의 차이 malloc - free의 경우 free할 때 소멸자가 호출되지 않는다 new - delete의 경우 delete할 때 자동으로 소멸자가 호출된다 즉, 객체(클래스) 생성에는 반드시 new - delete를 ..