전체 글34 1부 1장: 문자열 패치 들어가기 앞서이 당시에는 실습 예제의 존재를 몰라서 직접 코드를 작성하여 구현하였습니다#include int main(){ std::cout 실습에 사용된 코드문자열 패치(바꾸기)코드의 시작인 main문은 디버깅의 시작에 위치해 있지 않는걸 알 수 있다 책에서는 이를 컴파일러가 임의로 추가시킨 stub code 라고하는데, Hello World의 main문을 찾기 위해 천천히 읽어 본 결과, stub code에 가깝지는 않은 것 같다Method Stub소프트웨어 개발에 쓰이고 다른 프로그래밍 기능을 대리하는 코드기존 코드를 시뮬레이션하거나 아직 개발되지 않은 코드를 임시로 대치하는 역할을 수행 오히러 커널 동작이 많고 어떤 것은 해당 프로그램이 위치하고 있는 디렉토리를 여는 것처럼 보이는 명령어도.. 2024. 12. 29. 0. 초기 환경 설정 1. MSVC 설치노트북 용량이 제한적이고, Visual Studio IDE는 주로 프로젝트 단위 작업에 초점이 맞춰져 있어 설치를 생략하기로 했다 https://aka.ms/vs/17/release/vs_BuildTools.exe 위의 링크로 Visual Studio 2022에 사용되는 MSVC와 같은 빌드 도구만을 다운로드할 수 있다 링크가 의심된다면 https://visualstudio.microsoft.com/ko/downloads/#build-tools-for-visual-studio-2022 Visual Studio Tools 다운로드 - Windows, Mac, Linux용 무료 설치Visual Studio IDE 또는 VS Code를 무료로 다운로드하세요. Windows 또는 Mac에서 V.. 2024. 12. 23. Derived Class에만 소멸자에 virtual이 붙으면 invalid free가 발생하는 건에 대하여 #include #include class WrongAnimal{protected: std::string type_;public: ~WrongAnimal() { std::cout 위의 코드를 실행하면 다음과 같은 출력문이 뜬다 WrongAnimalmalloc: *** error for object 주소값: pointer being freed was not allocatedmalloc: *** set a breakpoint in malloc_error_break to debug 도대체 왜?WrongCat의 소멸자가 호출이 된 것도 아닌데, WrongAnimal의 소멸자가 호출이 되고 잘못된 주소값에 대한 free()가 발생하는지 의문이었다 디버깅을 해보았지만 정확한 답은 나오지 않았기에 어쩔 수.. 2024. 11. 22. getline이 eof를 만나면 IntroductionC/C++ 과제를 진행하던 도중 전화번호부 프로그램을 만들게 되었다해당 프로그램은 적절한 명령어를 통해 전화번호부를 추가하거나 찾는 작업을 수행하게 되는데, 문제는 들어오는 입력값에 ctrl + D(EOF) 를 받게 되었을 때 더 이상 Input 작업이 동작하지 않는다는 점이었다 나는 EOF를 받더라도 다시 Input을 받고 싶었기에 이리저리 해결방법을 찾아보게 되었고 cin.clear()라는 비트 초기화 함수를 통한 작업 재개를 하려고 하였으나 실패하였고 cin.clear()에 더해 clearerr()라는 함수를 추가로 사용해야 cin stream이 제대로 동작하는 것을 확인할 수 있었다 위와 같은 두 함수를 찾아가며 왜 하나만으로는 동작하지 않는지에 대해 알아보았으며 해당 .. 2024. 10. 3. Phong Reflection Model 구현 Phong Reflection Model 상세한 정의 $\downarrow$더보기For each light source in the scene, components $i_s$ and $i_d$are defined as the intensities (often as RGB values) of the specular and diffuse components of the light sources, respectively.장면 내의 각 광원에 대해 $i_s$와 $i_d$는 각각 광원의 반사광과 확산광의 세기 (종종 RGB값으로 표현됨)로 정의된다A single term $i_a$ controls the ambient lighting; it is sometimes computed as a sum of contri.. 2024. 8. 14. Lambertian reflectance Lambertian reflectance은 표면에 대한 이상적인 무광 또는 확산 반사를 정의하는 속성이다관찰자에게 Lambertian의 겉보기 밝기는 관찰자의 시야각에 관계없이 동일하다 이를 좀더 자세히 설명하자면표면의 광도는 어느 각도에서 보더라도 동일한 복사 휘도를 가지며 즉, 동일한 밝기로 보이는 것을 의미한다특정 면적 요소에서 방출되는 에너지는 방출 가도의 코사인에 따라 감소하지만 관찰자가 볼 수 있는 면적이 차지하는 입체각 역시 동일한 비율로 감소하기 때문에, 복사휘도(단위 입체각당 단위 면적당 방사되는 에너지)는 동일하게 유지된다이는 Lambert's Cosine Law를 따르며 이 법칙을 요약하자면 모든 방향에서 반사된 복사휘도가 동일하다는 의미이다 일반적으로 마감되지 않은 나무가 대략적으로.. 2024. 8. 7. 이전 1 2 3 4 5 6 다음