๋ ˆ์ด๋ธ”์ด ๊ฒŒ์ž„๊ฐœ๋ฐœ๊ณต๋ถ€์ธ ๊ฒŒ์‹œ๋ฌผ์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ๊ฒŒ์‹œ๋ฌผ ํ‘œ์‹œ
๋ ˆ์ด๋ธ”์ด ๊ฒŒ์ž„๊ฐœ๋ฐœ๊ณต๋ถ€์ธ ๊ฒŒ์‹œ๋ฌผ์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ๊ฒŒ์‹œ๋ฌผ ํ‘œ์‹œ

◤ 2022๋…„ 10์›” 8์ผ ํ† ์š”์ผ

● ์–ธ๋ฆฌ์–ผ ๋จธํ…Œ๋ฆฌ์–ผ ๊ฐ•์˜ ์˜์ƒ

※ ์ง€๊ทนํžˆ ๊ฐœ์ธ์ ์ธ ์ผ์ƒ ๋ฉ”๋ชจ์™€ ๊ธฐ๋ก์„ ์œ„ํ•œ ๊ณณ์ž…๋‹ˆ๋‹ค.



https://www.youtube.com/watch?v=AEfMLaSB7is


- ์–ธ๋ฆฌ์–ผ ๋ธ”๋ฃจํ”„๋ฆฐํŠธ๋ฅผ ์ด์šฉํ•œ ๊ธฐ๋ณธ ๋จธํ…Œ๋ฆฌ์–ผ ์ƒ์„ฑ.
- ๋…ธ๋ง๋งต ํ…์Šค์ฒ˜ ์ ์šฉ. 
- ์•Œ๋ฒ ๋„(albedo) ๋ฐ ์ธํ…์‹œํ‹ฐ(intensity) ๋ฐ ์—ฌ๋Ÿฌ ์™ธ๋ถ€ ์ฐธ์กฐ ๋ณ€์ˆ˜ ์„ค์ •
- ๋จธํ…Œ๋ฆฌ์–ผ ๋‚ด๋ถ€ ๋กœ์ง์˜ ํ•จ์ˆ˜ํ™”.
- ๋จธํ…Œ๋ฆฌ์–ผ ์ œ์ž‘์— ์ด์šฉ๋˜๋Š” ๋ช‡ ๊ฐ€์ง€ ์œ ์šฉํ•œ ๋…ธ๋“œ๋“ค ์†Œ๊ฐœ.

◤ 2022๋…„ 8์›” 25์ผ ๋ชฉ์š”์ผ

● ์–ธ๋ฆฌ์–ผ ๊ณต์‹ ๋Ÿฌ๋‹ (์˜จ๋ผ์ธ ๊ฐ•์ขŒ ์‚ฌ์ดํŠธ)

※ ์ง€๊ทนํžˆ ๊ฐœ์ธ์ ์ธ ์ผ์ƒ ๋ฉ”๋ชจ์™€ ๊ธฐ๋ก์„ ์œ„ํ•œ ๊ณณ์ž…๋‹ˆ๋‹ค.





์–ธ๋ฆฌ์–ผ ๋Ÿฌ๋‹


◤ 2022๋…„ 8์›” 10์ผ ์ˆ˜์š”์ผ

● C++ ์ปดํŒŒ์ผ ์‹œ๊ฐ„ ์ค„์ด๋Š” ํŒ

※ ์ง€๊ทนํžˆ ๊ฐœ์ธ์ ์ธ ์ผ์ƒ ๋ฉ”๋ชจ์™€ ๊ธฐ๋ก์„ ์œ„ํ•œ ๊ณณ์ž…๋‹ˆ๋‹ค.





# C++ ์ปดํŒŒ์ผ ์‹œ๊ฐ„ ์ค„์ด๋Š” ํŒ (MS ๋ธ”๋กœ๊ทธ)
https://devblogs.microsoft.com/cppblog/recommendations-to-speed-c-builds-in-visual-studio/

#include remover

◤ 2022๋…„ 8์›” 5์ผ ๊ธˆ์š”์ผ

● ๊ทธ๋ž˜ํ”ฝ์Šค 9์ผ์ฐจ ์ˆ˜์—…

※ ์ง€๊ทนํžˆ ๊ฐœ์ธ์ ์ธ ์ผ์ƒ ๋ฉ”๋ชจ์™€ ๊ธฐ๋ก์„ ์œ„ํ•œ ๊ณณ์ž…๋‹ˆ๋‹ค.







# 9์ผ์ฐจ

- RTTI ์ฝ”๋“œ ์ถ”๊ฐ€
    
    [Custom RTTI](https://www.notion.so/Custom-RTTI-1dd5033465a64f7db6a8e7200fbc65a0)
    
- ์ฐธ๊ณ  : [https://www.codeproject.com/Tips/1068171/Cplusplus-Custom-RTTI](https://www.codeproject.com/Tips/1068171/Cplusplus-Custom-RTTI)
- ์—”ํ‹ฐํ‹ฐ - ์ปดํฌ๋„ŒํŠธ ๊ตฌ์กฐ ์ ์šฉ
    - [https://gameprogrammingpatterns.com/component.html](https://gameprogrammingpatterns.com/component.html)
- ํŠธ๋žœ์Šคํผ ์ปดํฌ๋„ŒํŠธ ์ถ”๊ฐ€
- ๋ฌผ์ฒด ๋‘๊ฐœ ๊ทธ๋ฆฌ๊ธฐ

The Modernest C++ #4 - ์ปดํฌ๋„ŒํŠธ์™€ ํ…œํ”Œ๋ฆฟ ๋ฉ”ํƒ€ํ”„๋กœ๊ทธ๋ž˜๋ฐ ไธŠ
https://gamedevforever.com/m/347

◤ 2022๋…„ 8์›” 4์ผ ๋ชฉ์š”์ผ

● ํ˜•์‹ ์—ฐ์—ญ? type deduction??

※ ์ง€๊ทนํžˆ ๊ฐœ์ธ์ ์ธ ์ผ์ƒ ๋ฉ”๋ชจ์™€ ๊ธฐ๋ก์„ ์œ„ํ•œ ๊ณณ์ž…๋‹ˆ๋‹ค.





ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ํ˜•์‹์„ ๋ช…์‹œ์ ์œผ๋กœ ์ง€์ •ํ•˜์ง€ ์•Š์€ ์ฝ”๋“œ ์š”์†Œ(์ฃผ๋กœ ๋ณ€์ˆ˜)์˜ ํ˜•์‹์„ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ดˆ๊ธฐ์น˜์— ๊ทผ๊ฑฐํ•ด์„œ ๊ฒฐ์ •ํ•˜๋Š” ๊ฒƒ์„ ํ”ํžˆ type inference๋ผ๊ณ  ๋ถ€๋ฆ…๋‹ˆ๋‹ค. inference๋Š” ํ”ํžˆ ์ถ”๋ก ์ด๋ผ๊ณ  ๋ฒˆ์—ญํ•˜์ง€๋งŒ, ๋ฌธ๋งฅ์— ๋”ฐ๋ผ์„œ๋Š” ‘์ถ”๋ฆฌ’๋ผ๊ณ ๋„ ํ•ฉ๋‹ˆ๋‹ค(์˜ˆ๋ฅผ ๋“ค์–ด ์ œ ๋ฒˆ์—ญ์„œ ์ธ๊ณต์ง€๋Šฅ: ํ˜„๋Œ€์  ์ ‘๊ทผ๋ฐฉ์‹์—์„œ๋Š” ์ถ”๋ก ์„ inference๋ณด๋‹ค ์ข€ ๋” ํฌ๊ด„์ ์ธ reasoning์—๊ฒŒ ์–‘๋ณดํ•˜๊ณ , inference๋Š” ‘์ถ”๋ฆฌ’๋กœ ๋ฒˆ์—ญํ–ˆ์Šต๋‹ˆ๋‹ค)1.

๊ทธ๋Ÿฐ๋ฐ Effective Modern C++์—์„œ ์ €์ž ์Šค์ฝง ๋งˆ์ด์–ด์Šค(SM)๋Š” ์ผ๊ด€๋˜๊ฒŒ type deduction, ์ฆ‰ ‘ํ˜•์‹ ์—ฐ์—ญ’์ด๋ผ๋Š” ์šฉ์–ด๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋ฒˆ์—ญ์„œ p.27์ด๋‚˜ p.45๋ฅผ ๋ณด๋ฉด ์•Œ ์ˆ˜ ์žˆ์ง€๋งŒ, SM์ด ์• ์ดˆ์— ํ˜•์‹ ์ถ”๋ก ์ด๋ผ๋Š” ์šฉ์–ด๋ฅผ ๋ชฐ๋ž๋˜ ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. ํŠนํžˆ, p.45๋ฅผ ๋ณด๋ฉด type inference๊ฐ€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์„ธ๊ณ„์—์„œ “ํ”ํžˆ ์“ฐ์ธ๋‹ค”๋Š” ์ ๋„ ์•Œ๊ณ  ์žˆ์Œ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.   

๊ณ„์† ๋ณด๊ธฐ => https://occamsrazr.net/tt/311



◤ 2022๋…„ 7์›” 29์ผ ๊ธˆ์š”์ผ

● DirectXTex ์‚ฌ์šฉ

※ ์ง€๊ทนํžˆ ๊ฐœ์ธ์ ์ธ ์ผ์ƒ ๋ฉ”๋ชจ์™€ ๊ธฐ๋ก์„ ์œ„ํ•œ ๊ณณ์ž…๋‹ˆ๋‹ค.







๊นƒํ—ˆ๋ธŒ์— ๊ณต๊ฐœ๋œ ์†Œ์Šค๋ฅผ ๋‹ค์šด ๋ฐ›์•„ ์ด์šฉํ•œ๋‹ค
github.com/microsoft/directxtex ์ ‘์†ํ•˜์—ฌ ์ฝ”๋“œํŒŒ์ผ์„ ZIP์œผ๋กœ ๋‹ค์šด๋กœ๋“œ ํ•œ๋‹ค.



์••์ถ•์„ ํ’€๊ณ  DirectXTex_Desktop_2022.sln ์†”๋ฃจ์…˜ ํŒŒ์ผ์„ ๋น„์ฃผ์–ผ ์ŠคํŠœ๋””์˜ค๋กœ ์—ด๊ณ  ๋นŒ๋“œ๋ฅผ ํ•ด์ค€๋‹ค.




๋นŒ๋“œ๊ฐ€ ์ž˜ ๋๋‚˜๋ฉด ์œ„์˜ ํด๋”์—์„œ DirectXTex.lib ํŒŒ์ผ์„ ์ด์šฉ์„ ํ•  ๊ฑด๋ฐ..
 




์—ฌ๊ธฐ์— ๋ณต์‚ฌ๋ฅผ ํ•ด์ฃผ๊ณ 



ํ—ค๋” ํŒŒ์ผ์„ ๋ณต์‚ฌํ•ด์„œ..




Include ํด๋”๋ฅผ ๋งŒ๋“ค์–ด์„œ ๋ณต์‚ฌํ•ด ์ฃผ์—ˆ๋‹ค


์—”์ง„ ์†์„ฑ์—์„œ DLL๊ณผ LIB ํŒŒ์ผ์„ ๋ถˆ์–ด์˜ฌ ํŒŒ์ผ์„ ์„ค์ •ํ•ด์ฃผ๊ณ ..



ํด๋” ๊ฒฝ๋กœ ์„ค์ •๋„ ํ•ด์ค€๋‹ค



์†์„ฑ์—์„œ C/C++์€ ํ—ค๋” ํŒŒ์ผ์„ ์—ฐ๊ฒฐ, ํฌํ•จํ•ด์ค„ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ์„ค์ •ํ•ด ์ค€๋‹ค




C/C++ ์„ค์ •์€ ํ—ค๋”ํŒŒ์ผ, ๋ง์ปค๋Š” dll. lib ์—ฐ๊ฒฐ ์„ค์ •.










ํ”„๋กœ์ ํŠธ์— ํฌํ•จ ์‹œํ‚ฌ ๋•Œ๋Š” ๋งˆ์šฐ์Šค๋กœ ํŒŒ์ผ์„ ๋Œ์–ด๋‹ค๊ฐ€ ๋น„์ฃผ์–ผ ์ŠคํŠœ๋””์˜ค ํด๋” ํŠธ๋ฆฌ ์ฐฝ์— ๋“œ๋ž˜๊ทธ&๋“œ๋กญ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค.



ํ…์Šค์ณ ํŒŒ์ผ์„ ์ด์šฉํ•˜๊ธฐ ์œ„ํ•œ ID3D11ShaderResourceView ์ด์šฉ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค.



์ฝ”๋“œ ์˜ˆ์ œ.

//by JSHong CodeBlock//
#include "Core.h"
#include "TextureLoader.h"
#include <DirectXTex.h>
#include <Utility/STLException.h>

namespace STL
{
std::unordered_map<std::wstring, ID3D11ShaderResourceView*> TextureLoader::textureMap;

ID3D11ShaderResourceView* TextureLoader::CreateShaderResourceView(ID3D11Device* device, const std::wstring& filename)
{
auto search = textureMap.find(filename);
if (search != textureMap.end())
{
return search->second;
}

std::wstring extension = filename.substr(filename.find_last_of(TEXT(".")) + 1);
std::transform(extension.begin(), extension.end(), extension.begin(), tolower);

static auto basePath = std::filesystem::current_path().parent_path();

auto finalPath = basePath;
finalPath /= "Content\\Textures";
finalPath /= filename;

DirectX::ScratchImage image;
HRESULT hr = E_FAIL;
if (extension == TEXT("tga") || extension == TEXT("targa"))
{
hr = DirectX::LoadFromTGAFile(
finalPath.c_str(),
nullptr,
image
);
}
else
{
hr = DirectX::LoadFromWICFile(
finalPath.c_str(),
DirectX::WIC_FLAGS_NONE,
nullptr,
image
);
}

ThrowIfFailed(hr, "Failed to load scratch image.");

ID3D11Texture2D* texture = nullptr;
hr = DirectX::CreateTexture(
device,
image.GetImages(),
image.GetImageCount(),
image.GetMetadata(),
reinterpret_cast<ID3D11Resource**>(&texture)
);

ThrowIfFailed(hr, "Failed to create texture.");

D3D11_SHADER_RESOURCE_VIEW_DESC srvDesc;
memset(&srvDesc, 0, sizeof(srvDesc));
srvDesc.ViewDimension = D3D11_SRV_DIMENSION_TEXTURE2D;
srvDesc.Texture2D.MipLevels = 1;
srvDesc.Format = image.GetMetadata().format;

ID3D11ShaderResourceView* shaderResourceView = nullptr;
hr = device->CreateShaderResourceView(
texture,
&srvDesc,
&shaderResourceView
);

SafeRelease(texture);
ThrowIfFailed(hr, "Failed to shader resource view.");

textureMap.insert({ filename, shaderResourceView });

return shaderResourceView;
}

void TextureLoader::Release()
{
for (auto pair : textureMap)
{
SafeRelease(pair.second);
}
}
}


# ์…ฐ์ด๋” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ž…๋ฌธ ์ฑ… (http://www.yes24.com/Product/Goods/7366949)



◤ 2022๋…„ 7์›” 27์ผ ์ˆ˜์š”์ผ

● ๊นƒํ—ˆ๋ธŒ ์ฒซ ์‚ฌ์šฉ

※ ์ง€๊ทนํžˆ ๊ฐœ์ธ์ ์ธ ์ผ์ƒ ๋ฉ”๋ชจ์™€ ๊ธฐ๋ก์„ ์œ„ํ•œ ๊ณณ์ž…๋‹ˆ๋‹ค.





# MS์˜ COM๊ตฌ์กฐ๋Š” ๋ฉ€ํ‹ฐ ํ”Œ๋žซํผ์—์„œ ํ†ต์ผํ™”๋ฅผ ์œ„ํ•ด์„œ ๋งŒ๋“ค์–ด์ง„ ๊ฒƒ.

# ์ˆ™์ œ Effective Modern C++ ํ•ญ๋ชฉ 2 (๋งค์ฃผ ๊ธˆ์š”์ผ ๋ฐœํ‘œ)

# GitHub ๋ ˆํฌ์ง€ํ„ฐ๋ฆฌ ์„ค์ • ๋ฐ ๋™๊ธฐํ™”
    - GitHub Desktop ์„ค์น˜ ๋ฐ ์„ค์ •
    - ํ”„๋กœ์ ํŠธ ๊ด€๋ฆฌ
    - .gitignore ํŒŒ์ผ ์ˆ˜์ •

◤ 2022๋…„ 7์›” 25์ผ ์›”์š”์ผ

● 7์›” 25์ผ ์›”์š”์ผ

※ ์ง€๊ทนํžˆ ๊ฐœ์ธ์ ์ธ ์ผ์ƒ ๋ฉ”๋ชจ์™€ ๊ธฐ๋ก์„ ์œ„ํ•œ ๊ณณ์ž…๋‹ˆ๋‹ค.





# ์–ธ๋ฆฌ์–ผ ๋นŒ๋“œ ํˆด (https://docs.unrealengine.com/4.27/ko/ProductionPipelines/BuildTools/)
    - ๋นŒ๋“œ ํˆด ๊ณต๋ถ€ํ•ด์„œ ์˜ค๋ธŒ์ ํŠธ ๋งŒ๋“ค์–ด ๋ณผ ์ˆ˜ ์žˆ์Œ

# c++ unicode (ํ…์ŠคํŠธ ์ธ์ฝ”๋”ฉ)
https://www.youtube.com/watch?v=tOHnXt3Ycfo

#๋น„์ฅฌ์–ผ ์ŠคํŠœ๋””์˜ค ์ฝ”๋“œ (์—๋””ํ„ฐ) ์‚ฌ์šฉํ•ด ๋ณผ๊นŒ?

# ์†”๋ฃจ์…˜ ์„ค์ •
    - 'STL_RenderEngineV2'์ด๋ž€ ์ด๋ฆ„์œผ๋กœ ์†”๋ฃจ์…˜ ์ƒ์„ฑ์„ ํ•ด์ฃผ๊ณ 

    - 'Game'๊ณผ 'Engine'์ด๋ž€ ์ด๋ฆ„์œผ๋กœ ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ์„ ํ•ด์ฃผ์—ˆ๋‹ค.

    - Game ๋ฐ Engine ํ”„๋กœ์ ํŠธ ์†์„ฑ์—์„œ [๊ตฌ์„ฑ ์†์„ฑ]-[์ผ๋ฐ˜] ์†์„ฑ์—์„œ '์ถœ๋ ฅ ๋””๋ ‰ํ„ฐ๋ฆฌ'์™€ '์ค‘๊ฐ„ ๋””๋ ‰ํ„ฐ๋ฆฌ' ์„ค์ •์„ ํ•ด์ฃผ์—ˆ๋‹ค

    - Engine ํ”„๋กœ์ ํŠธ ์†์„ฑ์—์„œ๋Š” [์ผ๋ฐ˜]-[๊ตฌ์„ฑ ํ˜•์‹] ์—์„œ '์‹คํ–‰ํŒŒ์ผ'์„ '๋™์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ'๋กœ ๋ณ€๊ฒฝํ•ด์ค€๋‹ค

    - Engine ํ”„๋กœ์ ํŠธ ์†์„ฑ์—์„œ [๊ตฌ์„ฑ์†์„ฑ]-[C/C++]-[์ „์ฒ˜๋ฆฌ๊ธฐ] ์ „์ฒ˜๋ฆฌ๊ธฐ ์ •์˜์— ENIGNE_BUILD_DLL;๋ฅผ ์ถ”๊ฐ€ํ•ด์ค€๋‹ค

    - Game์ด๋ž€ ํ”„๋กœ์ ํŠธ์™€ Engine์ด๋ž€ ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“ค์—ˆ๋‹ค

    - Engine์—๋Š” Sourceํด๋”๋ฅผ ๋งŒ๋“ค๊ณ  Core ํด๋”์™€ Device ํด๋”๋ฅผ ๋งŒ๋“ค์—ˆ๋‹ค (์ด๋•Œ ํ•„ํ„ฐ๊ฐ€ ์•„๋‹ˆ๋ผ ์‹ค์ œ ๋กœ์ปฌ ํด๋”๋ฅผ ์ƒ์„ฑํ•ด์•ผ ํ•จ ์ฃผ์˜!)

    - Core์—๋Š” Core.cpp ์™€ Core.h ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜๊ณ 

    - Device์—๋Š” Window.cpp์™€ Window.h ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜์˜€๋‹ค

    - ์ด๋•Œ Device ์šฐํด๋ฆญ ํ›„ ํด๋ž˜์Šค ์ถ”๊ฐ€๋กœ 'Widnows'๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ์ƒ์„ฑํ•˜๊ณ 

    - Windows.cpp ํŒŒ์ผ๊ณผ Windows.h ํŒŒ์ผ์€ ๋งˆ์šฐ์Šค๋กœ ๋Œ์–ด๋‹ค๊ฐ€ Device ํด๋”๋กœ ์˜ฎ๊ฒจ์ฃผ์—ˆ๋‹ค

    - Lib ์—ฐ๋™์„ ์œ„ํ•ด '์„ค์ •'์„ ํ•ด์ฃผ๊ณ 

    - Game ์†์„ฑ์—์„œ๋Š” ์ฐธ์กฐ ์ถ”๊ฐ€๋ฅผ 'Engine'์œผ๋กœ ํ•ด์ฃผ์—ˆ๋‹ค

    - Game ์†์„ฑ [๋งํฌ]์—์„œ ์ถ”๊ฐ€ ์ข…์†์„ฑ ์„ค์ •์„ ํ•˜์—ฌ Engine.lib๋ฅผ ๋ช…์‹œํ•ด์ฃผ์—ˆ๋‹ค

    - Game ์†์„ฑ [์ผ๋ฐ˜]-[์ถ”๊ฐ€ ํฌํ•จ ๋””๋ ‰ํ† ๋ฆฌ]์—์„œ '$(SolutionDir)Engine\Source\'๋ฅผ ๋ช…์‹œํ•ด์ฃผ์—ˆ๋‹ค




















# Engine.Lib ํŒŒ์ผ ๊ตฌ์กฐ
    - LoadLibrary("MyDLL") DLL์„ ๋ถˆ๋Ÿฌ์˜จ๋‹ค






์›๋ž˜ ๋”ฐ๋กœ ๋นŒ๋“œ ํ•ด์•ผ ํ•˜์ง€๋งŒ ์ฐธ์กฐ ์„ค์ •์„ ํ•ด์ฃผ๋ฉด ์ž๋™์œผ๋กœ Engine ๋นŒ๋“œ ๋‹ค์‹œ ํ•ด์ฃผ๊ณ  Game ๋นŒ๋“œ๋ฅผ ํ•ด์ค€๋‹ค (์ž๋™ํ™”)





๊ฒฐ๊ณผ


๋นŒ๋“œ๋ฅผ 2๊ฐœ ์„ฑ๊ณตํ–ˆ๋‹ค๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ ๋‚˜์˜จ๋‹ค!






๊ฐ€๋” ์‹ค์ œ ์˜ค๋ฅ˜๋Š” ์•„๋‹ˆ์ง€๋งŒ 'warning'์ด ๊ท€์ฐฎ์„ ๋•Œ๊ฐ€ ์žˆ๋‹ค. ์ด๋•Œ ๊ฒฝ๊ณ  ๋ฉ”์„ธ์ง€๋ฅผ ๊บผ์ค€๋‹ค. (ใ…‹ใ…‹ใ…‹)





์™ธ๋ถ€์—์„œ ์ž‘์„ฑ๋œ ์ฝ”๋“œ๋ฅผ ํ”„๋กœ์ ํŠธ์— ์ถ”๊ฐ€ํ• ๋•Œ ๋งˆ์šฐ์Šค๋กœ ๋Œ์–ด๋‹ค ๋†“์•„๋„ ๋˜์ง€๋งŒ ์ถ”๊ฐ€ [๊ธฐ์กด ํ•ญ๋ชฉ] ๊ธฐ๋Šฅ์„ ์ด์šฉํ•˜์—ฌ ํŒŒ์ผ์„ ์ฐพ์•„ import๋ฅผ ํ•˜๋Š”๊ฒŒ ์•ˆ์ „(!)ํ•˜๋‹ค.





ํ—ˆ๋ฌดํ•˜์ง€๋งŒ... ์–ด์จŒ๋“  ์ฐฝ ํ•˜๋‚˜ ๋‹ฌ๋ž‘ ๋„์šฐ๊ธฐ ์„ฑ๊ณต ใ… ใ… 




# ์ˆ™์ œ '์ด๋“์šฐ์˜ ๊ฒŒ์ž„ ์ˆ˜ํ•™ ๋ธ”๋กœ๊ทธ' 16๋ฒˆ๊นŒ์ง€ ์ฝ์–ด๋ณด๊ธฐ






◤ 2022๋…„ 7์›” 22์ผ ๊ธˆ์š”์ผ

● ๋น„์ฃผ์–ผ ์ŠคํŠœ๋””์˜ค ํ”„๋กœ์ ํŠธ ๋นŒ๋“œ ์„ค์ •

※ ์ง€๊ทนํžˆ ๊ฐœ์ธ์ ์ธ ์ผ์ƒ ๋ฉ”๋ชจ์™€ ๊ธฐ๋ก์„ ์œ„ํ•œ ๊ณณ์ž…๋‹ˆ๋‹ค.





 






๋ฐฐ์น˜ ํŒŒ์ผ๋กœ ๋งŒ๋“ค์–ด์„œ ๋ง์ปค์˜ ์—ญํ• ์„ ๋Œ€์‹  ํ•ด์ค€๋‹ค


//๋นŒ๋“œ ์ „ ์ด๋ฒคํŠธ not exist "$(OutDir)..\Application" mkdir "$(OutDir)..\Application" if not exist "$(SolutionDir)Lib\Engine\$(Platform)\$(Configuration)" mkdir "$(SolutionDir)Lib\Engine\$(Platform)\$(Configuration)" //๋นŒ๋“œ ํ›„ ์ด๋ฒคํŠธ copy "$(OutDir)Engine.dll" "$(Outdir)..\Application\" copy "$(OutDir)Engine.lib" "$(SolutionDir)Lib\Engine\$(Platform)\$(Configuration)\" Engine.vcxproj ํŒŒ์ผ(xml)์„ ์—ด์–ด์„œ ๋ฉ”๋ชจ์žฅ์—์„œ ์ˆ˜์ •ํ•ด์ค˜๋„ ๋œ๋‹ค.




● ๋น„์ฃผ์–ผ ์ŠคํŠœ๋””์˜ค ์•Œ์ˆ˜ ์—†๋Š” ์—๋Ÿฌ ๋‚ ๋•Œ?

※ ์ง€๊ทนํžˆ ๊ฐœ์ธ์ ์ธ ์ผ์ƒ ๋ฉ”๋ชจ์™€ ๊ธฐ๋ก์„ ์œ„ํ•œ ๊ณณ์ž…๋‹ˆ๋‹ค.





Application 

    - Pixelshder.hlsl ๋งŒ๋“ค๊ณ 

    - VertexShader.hlsl ๋งŒ๋“ค๊ณ 


Engine

    - Test.h ๋งŒ๋“ค๊ณ 

    - Test.cpp ๋งŒ๋“ค๊ณ 



!!!!!! VIsual Studio์—์„œ Path ์„ค์ •์‹œ ์ŠคํŽ˜์ด์Šค ์ธ์‹ ์˜ค๋ฅ˜๋‚œ๋‹ค!!! ์ œ๊ธธ!!!!!!!!

$(SolutionDir)Engine\;$(SolutionDir)Engine\Source\;$(VC_IncludePath);$(WindowsSDK_IncludePath);

;๋’ค์— ํ•œ์นธ ๋„๋ฉด ๋’ท ๋ถ€๋ถ„ ์ธ์‹ ๋ชปํ•จ ใ…‹ใ…‹



# UE ๋ฐ์ดํ„ฐ ์Šค๋ฏธ์Šค (ํ”Œ๋Ÿฌ๊ทธ์ธ)

    - ์–ธ๋ฆฌ์–ผ์ด ๊ธฐ๋ณธ์ ์œผ๋กœ FBX๋งŒ ์ง€์›ํ•˜์ง€๋งŒ ๋ฐ์ดํ„ฐ์Šค๋ฏธ์Šค๋ฅผ ์ด์šฉํ•˜์—ฌ ๋‹ค์–‘ํ•œ ํฌ๋งท๋„ ์ง€์› ๊ฐ€๋Šฅํ•˜๋‹ค.


# ๋น„์ฅฌ์–ผ ์ŠคํŠœ๋””์˜ค 2019, 2022 ๋‹ค ์„ค์น˜ ๋ผ์„œ ์‚ฌ์šฉํ•˜๋‹ค๊ฐ€ ์ด์ƒํ•˜๊ฒŒ ์ž๊พธ ์˜ค๋ฅ˜๊ฐ€ ๋‚˜๊ธธ๋ž˜.. ํ˜น์‹œ๋‚˜ ํ•ด์„œ 2019๋ฅผ ์‚ญ์ œํ•˜๋‹ˆ๊นŒ ํ•ด๊ฒฐ์ด ๋˜์—ˆ๋‹ค

    - ๊ตฌ๋ฌธ ํ•ด์„ ์‹ค์‹œ๊ฐ„ ์ž˜ ์•ˆ๋˜๋Š” ํ˜„์ƒ

    - ์ด์ƒํ•˜๊ฒŒ ์„ค์ • ์˜ค๋ฅ˜๊ฐ€ ๋‚˜์„œ include, link๊ฐ€ ์ž˜ ์•ˆ๋ผ์„œ ์˜ค๋ฅ˜ ๋‚˜๊ธฐ๋„ ํ•จ

    - 2019 ์ œ๊ฑฐํ•˜๊ณ  2022 ํ•˜๋‚˜๋งŒ ์‚ฌ์šฉํ•˜๋‹ˆ ๊น”๋”ํ•˜๊ฒŒ ํ•ด๊ฒฐ์ด ๋จ ใ…‹ใ…‹ใ…‹

◤ 2022๋…„ 7์›” 21์ผ ๋ชฉ์š”์ผ

● 7์›” 21์ผ DX ์ˆ˜์—… 2์ผ์ฐจ

※ ์ง€๊ทนํžˆ ๊ฐœ์ธ์ ์ธ ์ผ์ƒ ๋ฉ”๋ชจ์™€ ๊ธฐ๋ก์„ ์œ„ํ•œ ๊ณณ์ž…๋‹ˆ๋‹ค.






์ด๋“์šฐ์˜ ๊ฒŒ์ž„ ์ˆ˜ํ•™ ๋ธ”๋กœ๊ทธ

https://blog.naver.com/destiny9720/221408760120


์ˆ™์ œ : 13๋ฒˆ๊นŒ์ง€ ์ฝ์–ด๋ณด๊ธฐ




#์•„ํ•€๊ณต๊ฐ„

#๋™์ฐจ์ขŒํ‘œ๊ณ„


# ์ •์ ๋ฒ„ํผ

https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=atom723&logNo=190302142


#๋ฒ„ํ…์Šค ์‰์ด๋”, ํ”ฝ์…€ ์‰์ด๋”






๊ทธ๋ž˜ํ”ฝ ํŒŒ์ดํ”„๋ผ์ธ