๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ“ Development Study/๐Ÿ–ผ GameProgramming 2D

๋‘ ๊ฐœ ์ด์ƒ์˜ ์นด๋ฉ”๋ผ ์‚ฌ์šฉ

by eazuooz 2023. 2. 6.

์˜ˆ์ œ :)

https://github.com/eazuooz/YamYamEngine/commit/553cd747d498851b5ed23370015a7a68b333bedc

 

cameras rendering · eazuooz/YamYamEngine@553cd74

Show file tree Showing 16 changed files with 198 additions and 39 deletions.

github.com

 

๊ฒŒ์ž„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ๋ฉ€ํ‹ฐ ์นด๋ฉ”๋ผ ์‹œ์Šคํ…œ์€ ๊ฒŒ์ž„ ์„ธ๊ณ„์˜ ๋‹ค์–‘ํ•œ ์‹œ์ ์„ ํ™”๋ฉด์— ๋™์‹œ์— ํ‘œ์‹œํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค. ์ด ๊ธฐ์ˆ ์€ ์ผ๋ฐ˜์ ์œผ๋กœ ๊ฒŒ์ž„์—์„œ ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ์‹œ์ ์„ ๋” ์ž˜ ์ œ์–ดํ•˜๊ณ  ๊ฒŒ์ž„์˜ ์‹œ๊ฐ์  ๋งค๋ ฅ์„ ํ–ฅ์ƒ์‹œํ‚ค๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

๋ฉ€ํ‹ฐ ์นด๋ฉ”๋ผ ์‹œ์Šคํ…œ์€ ์ผ๋ฐ˜์ ์œผ๋กœ ๊ฒŒ์ž„ ์›”๋“œ ๋‚ด์—์„œ ์„œ๋กœ ๋‹ค๋ฅธ ์œ„์น˜์™€ ๊ฐ๋„์— ๋ฐฐ์น˜๋œ ์—ฌ๋Ÿฌ ๋Œ€์˜ ๊ฐ€์ƒ ์นด๋ฉ”๋ผ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์นด๋ฉ”๋ผ๋Š” ๊ฒŒ์ž„ ์ฝ”๋“œ ๋˜๋Š” ํ”Œ๋ ˆ์ด์–ด์˜ ์ž…๋ ฅ์„ ํ†ตํ•ด ์ œ์–ดํ•˜์—ฌ ์นด๋ฉ”๋ผ ์‚ฌ์ด๋ฅผ ์ „ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฉ€ํ‹ฐ ์นด๋ฉ”๋ผ ์‹œ์Šคํ…œ์˜ ์ผ๋ฐ˜์ ์ธ ์šฉ๋„ ์ค‘ ํ•˜๋‚˜๋Š” ๋ถ„ํ•  ํ™”๋ฉด ๋ฉ€ํ‹ฐํ”Œ๋ ˆ์ด์–ด ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์œผ๋กœ, ๊ฐ ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ํ™”๋ฉด์—์„œ ๊ฐ์ž์˜ ์นด๋ฉ”๋ผ ๋ทฐ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ ๋‹ค๋ฅธ ์šฉ๋„๋กœ๋Š” ์ปท์‹ ์ด๋‚˜ ํŠน์ • ๊ฒŒ์ž„ํ”Œ๋ ˆ์ด ์ˆœ๊ฐ„์— ์—ฌ๋Ÿฌ ์นด๋ฉ”๋ผ๋ฅผ ์ „ํ™˜ํ•˜์—ฌ ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ์•ก์…˜์„ ๋” ์ž˜ ๋ณผ ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋ฉ€ํ‹ฐ ์นด๋ฉ”๋ผ ์‹œ์Šคํ…œ์˜ ๊ตฌํ˜„์€ ์‚ฌ์šฉ ์ค‘์ธ ๊ฒŒ์ž„ ์—”์ง„๊ณผ ๊ฒŒ์ž„์˜ ํŠน์ • ์š”๊ตฌ ์‚ฌํ•ญ์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๋˜ ๋‹ค๋ฅธ ์ ‘๊ทผ ๋ฐฉ์‹์€ ํ•ญ์ƒ ํ™œ์„ฑํ™”๋˜์–ด ๊ฒŒ์ž„ ์›”๋“œ์˜ ์—ฌ๋Ÿฌ ๋ถ€๋ถ„์„ ๋ Œ๋”๋งํ•˜๋Š” ์—ฌ๋Ÿฌ ๋Œ€์˜ ์นด๋ฉ”๋ผ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ํ•œ ์นด๋ฉ”๋ผ๋Š” ํ”Œ๋ ˆ์ด์–ด ์บ๋ฆญํ„ฐ์— ์ดˆ์ ์„ ๋งž์ถ”๊ณ  ๋‹ค๋ฅธ ์นด๋ฉ”๋ผ๋Š” ๊ฒŒ์ž„ ํ™˜๊ฒฝ์— ์ดˆ์ ์„ ๋งž์ถœ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์ด๋Ÿฌํ•œ ์นด๋ฉ”๋ผ ๋ทฐ๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ธ”๋ Œ๋”ฉํ•˜์—ฌ ๋งค๋„๋Ÿฌ์šด ๋ฉ€ํ‹ฐ ์นด๋ฉ”๋ผ ํ™˜๊ฒฝ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์”ฌ์˜ ๋ Œ๋”๋ง์„ ์ด์šฉํ•˜์ง€ ์•Š๊ณ  ์ง€๊ธˆ๋ถ€ํ„ฐ๋Š” ์นด๋ฉ”๋ผ์—๊ฒŒ ๋ชจ๋“  ๋ Œ๋”๋ง ์ž‘์—…์„ ์œ„์ž„ํ•˜๊ฒŒ ๋˜์–ด๋ฒ„๋ฆฐ๋‹ค.

์—ฌ๋Ÿฌ๋Œ€์˜ ์นด๋ฉ”๋ผ๊ฐ€ ์กด์žฌํ•˜๊ณ  ๊ทธ ์นด๋ฉ”๋ผ๊ฐ€ ๋ฌผ์ฒด๋ฅผ ์ง์ ‘ ๋ Œ๋”๋งํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.

	void Render()
	{
		eSceneType type = SceneManager::GetActiveScene()->GetSceneType();
		for (Camera* cam : cameras[(UINT)type])
		{
			if (cam == nullptr)
				continue;

			cam->Render();
		}

		cameras[(UINT)type].clear();
	}

'๐Ÿ“ Development Study > ๐Ÿ–ผ GameProgramming 2D' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

Grid ์˜ค๋ธŒ์ ํŠธ  (0) 2023.03.02
๊ณ„์ธต ๊ตฌ์กฐ  (0) 2023.02.07
World View Projection ๋ณ€ํ™˜  (0) 2023.01.11
Material ๋ฉ”ํ…Œ๋ฆฌ์–ผ  (0) 2023.01.02
Sampler ์ƒ˜ํ”Œ๋Ÿฌ  (0) 2023.01.02

๋Œ“๊ธ€