728x90
(c++20) [Three-way Comparsion(3방향 비교 연산자)/우주선] 연산자
👨🏻‍💻 programming/◽ c, c++2024. 6. 14. 17:21(c++20) [Three-way Comparsion(3방향 비교 연산자)/우주선] 연산자

"(c++20) Three-way Comparsion(3방향 비교 연산자)/우주선" c++20에 추가된 것 중에 아주 편안한 연산자 오버로딩이 생겼다. !! 지금은 아니더라도(?) 아주 유용하게 쓰일 거 같은 녀석이라서 정리해본다. class나 struct를 만들어서 그 객체끼리 비교를 하기 위해서는 필요에 따라 [ '' '>=' '==' '!=' : 6개] 연산자 오버로딩을 해야한다. 하지만 여기서 c++20에 추가된 Three-way Comparsion 연산자를 사용하면 6개를 포함한 operator하나만 정의하면 된다. #include using namespace std;struct Myoperator{ Myoperator(int value) : _value(value) { } //auto ope..

(c++20) consteval, constinit
👨🏻‍💻 programming/◽ c, c++2024. 6. 14. 16:27(c++20) consteval, constinit

"(c++20) consteval, constinit" C++20에 추가된 Language 중 consteval, constinit에 대해서 알아보고 기존에 있었던 const와 constexpr과 비교해보려고한다. 일단 어떤 단어의 줄임말인지 확인하고 넘어가자 ~const: Constant 상수constexpr: Constant Expression 표현// c++11consteval: Constant Evaluation 검증  // c++20 constinit: Constrant Initialization 초기화 // c++20함수에 키워트를 붙였을 때, 변수에 키워드를 붙였을 때를 나눠서 정리해보았다.  1. 함수 (일반 vs constexpr vs consteval) 먼저 선행해야 할 개념은 런타임(..

[c++17] 전문자를 위한 c++17 새로운 내용 북마크
👨🏻‍💻 programming/◽ c, c++2024. 3. 11. 14:26[c++17] 전문자를 위한 c++17 새로운 내용 북마크

c++17에 추가된 문법을 도서 "전문가를 위한 C++17(개정4판)"에서 빠르게 찾기 위해서 정리해보았다. page 58중첩된 네임스페이스 (nested namespace)61std::byte69if문의 이니셜라이저(intializer : 초기자)72switch문의 이니셜라이저(intializer : 초기자)81구조적 바인딩(structured binding)138로우 레벨 숫자 변환 "}">#include 140std::string_view클래스298weak_ptr도 shared_ptr와 마찬가지로 C스타일 배열을 지원한다.299weak_from_this()390static 데이터 멤버를 inline으로 선언할 수 있다.530std::as_const() 헬퍼 메서드 "}">#include  (obj)..

[HTTP] Error 416 "The requested range is not satisfiable"
👨🏻‍💻 programming/◽ 이것저것..2024. 2. 7. 18:46[HTTP] Error 416 "The requested range is not satisfiable"

HTTP Error 416 "The requested range is not satisfiable" ???????????????????? 범위를 잘못 입력했거나 끝 범위를 입력한 경우. 🔸 발생하게 된 상황: 작업을 하던 중... 파일을 받다가 중간에 멈췄을 경우(강종 등등 예상하지 못한 종료) 다음에 다시 파일을 이어받고 싶어서 코드를 작성하다. 발생한 에러였다. HTTP에 특정 범위(byte)부터 파일을 받겠다고 요청을 보냈었다. HTTP에 연결은 되지만 전달 받은 내용에는 위와 같은 텍스트가 포함된 buffer를 받았다. 요청문법이 잘못되면 "Error 400 : Bad Request - Invalid Header" 을 뱉어낸다. 즉 문법에는 문제가 없었다. ("HTTP 범위 요청" 키워드로 구글링..

[여행/사진] 첫 해외여행 일본 존잼 도시 나고야 (1~2일 차/3박 4일)
🙋🏻‍♀️ pinko/◽ 일상&사진2024. 1. 24. 17:38[여행/사진] 첫 해외여행 일본 존잼 도시 나고야 (1~2일 차/3박 4일)

만 27세. 적지 않은 나이지만 첫 해외여행이어서 블로그에 기록해보려고 한다. 매번 가자 ~~ 이번 연도에 가자 다음 연도에 가자면서 계속 미뤘던 여행 하지만 2024년 1월 18일. 진짜 다녀왔다. 그리고 너무 재미있었고 맛있었던 여행이었다. 원래는 시라카와 고와 게로 가는 계획이었지만 지진이 일어난 이시카와현과 가까워서 취소하고 3박 4일 올 나고야 여행이었다. 일본의 노잼도시라고 불리는 나고야이지만 무슨 소리!? 존잼도시다. 자 이제 시작 ~2024년 01월 18일 목요일 / 날씨: 약간 비 💧11시 10분 비행기였고 해외여행 마스터인 친구가 3시간 전에는 도착해야 한다 해서 공항버스 6시 30분 차로 예약! 저 아주 부지런 하죠 ~? 하하 그렇게 한 시간 반 동안 기절. zzzZzzZZ인천공항에..

[Framework] 1. 사용자 지정/정의 메세지(Message) 사용하기, 메시지 맵(MFC)
👨🏻‍💻 programming/◽ Framework2024. 1. 16. 16:57[Framework] 1. 사용자 지정/정의 메세지(Message) 사용하기, 메시지 맵(MFC)

일하다 "#define ID_MYMESSAGE WM_USER+1" 이런 식으로 정의 된 디파인을 보고 WM_USER가 무엇이며.. 어떻게 사용하는지 궁금해서 정리해본다..위와 같은 정의는 사용자 지정/정의 메세지를 사용하기 위한 messageID를 부여하는 코드 였으며 메시지 맵을 만드는 과정은 아래와 같다. 1. 사용자 정의 함수를 만든다. (메시지 핸들러를 정의한다.) 사용자 정의 함수는 정해진 함수틀(원형)이 있다. 아래와 같게 함수틀을 지켜서 정의 해야한다. afx_msg LRESULT MyPinkoFunc(WPARAM wParam, LPARAM lParam) { return (0); } 2. ON_MESSAGE ON_MESSAGE( message, memberFxn ) message : 메시지 ..

[DirectX12] 조명의 종류
🎯 game engine/◽ directX122023. 12. 19. 16:43[DirectX12] 조명의 종류

1. 조명의 주요 벡터 2. 람베르트 코사인 법칙 [ Lambert's Cosine Law ] 빛에서 중요한 것은 단위 면적당 받는 빛의 에너지(E) 이다. 같은 양의 빛을 비스듬하게 비추는 것보다 정면으로 비추는 빛이 더 강한 빛이다. 이는 빛의 에너지 = 복사조도(단위 면적당 복사 선속의 밀도) 한 영역에 빛의 양을 결정한다. A1 단면적인 빛을 표면에 정면으로 때릴 떄 각은 0도 (1번)이고 같은 양(A1) 단면적인 빛을 사전으로 때릴 때 각은 세타도이다. 이 각으로 통해 복사조도(단위 면적당 복사 선속의 밀도)를 구할 수 있다. 위의 그림과 같이 삼각법에 따라 2번의 E2를 구하면, 아래와 같은 식이 도출된다. 3. 분산 조명 [ diffuse light / 난반사광, 분산광 ] 빛은 어떤 물체 ..

[DirectX12] 조명 연산을 위한 법선 벡터, 법선 벡터의 변환
🎯 game engine/◽ directX122023. 12. 14. 13:54[DirectX12] 조명 연산을 위한 법선 벡터, 법선 벡터의 변환

물체의 입체감과 부피감을 표현하기 위해 조명(Lighting)과 음영(Shadering)이 중요하다. 일반적으로 조형 모형이 정확할 수록 그 계산의 비용은 크고 영화와 같은 미리 렌더링 해두어도 되는 장면은 게임같은 실시간 렌더링을 해야하는 장면보다 비용이 더 높다. 재질(material)은 빛이 물체의 표면과 상호작용하는 방식을 결정하는 속성들의 집합이라고 할 수 있다. 흡수하는 빛의 색, 표면 아래 재질의 굴절률, 표면의 매끄러운 정도, 투명도 등 .. 광원은 다양한 빛의 색을 낼 수 있고 여러가지 세기(intensity)로 방출한다. 광원에서 나온 빛이 물체와 충돌하면, 그 빛의 일부는 흡수되고 일부는 반사된다. 대부분 게임과 같은 실시간 응용 프로그램이 사용하는 조형 모형은 국소 조명 모형(loc..

[DirectX12] 원기둥의 정점 찍기/렌더링 과정 이해하기
🎯 game engine/◽ directX122023. 12. 12. 17:37[DirectX12] 원기둥의 정점 찍기/렌더링 과정 이해하기

위 내용에 맞춰 버텍스를 만들어보자. 인덱스는 생략함.float stackheight = height / stackCount; // 한 층 위의 더미로 올라 갈 때의 반지를 변화량float radiusStep = (topRadius - bottomRadius) / stackCount;uint32 ringCount = stackCount + 1;for( uint32 i = 0; i  위와 같이 정점을 구하고 인덱스를 찍었다면 배열에 담아 그림을 그려달라고 GPU에게 요청해야한다. DirectX12에서 GPU에게 요청하는 과정을 알아보자. 이전의 [Prev]CommandList를 CommandQueue(GPU가 실행하도록)에 제출하고 새롭게 그릴 명령들을 [New]CommandList에 담아 CommnadQ..

[DirectX12] Direct3D 초기화 과정, 그래픽 프로그래밍의 CPU와 GPU의 상호작용
🎯 game engine/◽ directX122023. 12. 6. 16:39[DirectX12] Direct3D 초기화 과정, 그래픽 프로그래밍의 CPU와 GPU의 상호작용

🍟 Direct3D 장치 초기화 과정 및 용어 정리 1. 서술자(descriptor) 객체 서술자는 자원 자료를 지정하는 수단일 뿐만 아니라 자원을 gpu에 서술하는 수단이기도 하다. 서술자는 direct3d에게 자원의 사용법을(자원을 파이프라인의 어떤 단계에 묶어야 하는지) 말해준다. Dirext3D 응용 프로그램은 자원을 직접 파이프라인에 묶지 않는다. 대신, 그리기 호출이 참조할 서술자들을 지정함으로써 자원을 파이프라인에 묶는다. 2. 서술자 종류(형식) CBV 서술자 : constant buffer(상수 버퍼)를 서술한다. SRV 서술자 : shader resource(셰이더 자원)을 서술한다. UAV 서술자 : unordered access view(순서 없는 접근)을 서술한다. 표본추출기 서술..

728x90
image