μ–΄μ œ μƒκ°ν–ˆλ˜ 아이디어 κ΅¬ν˜„κ²°κ³Ό


viewimage.php?id=2abcdd23dad63db0&no=24b0d769e1d32ca73cec8efa11d02831ed3c848cabfee483347b0fb096a803c552e0edc896df9f8274b09b7d8bcd97a3520c92a299923804631cf7a3e1aa68226d269d


μ–΄μ œ μƒκ°ν–ˆλ˜ λ°©λ²•λŒ€λ‘œ ν–ˆλŠ”λ°, κ²°κ³Όκ°€ μ•ˆμ’‹μ•˜μŒ. μ—¬λŸ¬ λ°”μ΄μ˜΄μ΄ κ²ΉμΉ˜λŠ” κ΅¬κ°„μ—μ„œ λ”λŸ¬μ›Œμ§.


각 λ²„ν…μŠ€μ— λ¨Έν…Œλ¦¬μ–Ό1, λ¨Έν…Œλ¦¬μ–Ό2와 lerp값을 μ€˜μ„œ μ •μ˜ν•΄μ€¬λŠ”λ°, μ΄λ ‡κ²ŒλŠ” μ•ˆλ˜κ² λ”λΌ.


κ·Έλž˜μ„œ μ–΄λ–»κ²Œ ν–ˆλƒλ©΄


λ°”μ΄μ˜΄μ΄ A,B,C,D,Eκ°€ μžˆμ„ λ•Œ, 각 꼭짓점에 λ°”μ΄μ˜΄ A,B,C,D,Eκ°€ ν¬ν•¨λœ λΉ„μœ¨μ„ λ…λ¦½μ μœΌλ‘œ κ΅¬ν•΄μ„œ λ”ν•΄μ€Œ.


μžμ„Ένžˆ μ„€λͺ…ν•˜μžλ©΄, λ…Έμ΄μ¦ˆ ν•¨μˆ˜κ°€ λ‘κ°œκ°€ 있고 ν•˜λ‚˜λŠ” λ°”μ΄μ˜΄ A,Bλ₯Ό κ²°μ •ν•˜κ³  λ‚˜λ¨Έμ§€ ν•˜λ‚˜λŠ” C,D,Eλ₯Ό κ²°μ •ν•΄μ£Όκ³ , 각 λ…Έμ΄μ¦ˆ ν•¨μˆ˜λŠ” μ›”λ“œ 전체λ₯Ό 컀버해야 함.

λ…Έμ΄μ¦ˆ ν•¨μˆ˜λ³„λ‘œ λ…λ¦½μ μœΌλ‘œ ν• λ‹Ήν•˜κ³  싢은 λ°”μ΄μ˜΄λ“€ 할당해주면됨. λ…Έμ΄μ¦ˆ1μ—μ„œ A,B κ²°μ •ν•˜κ³  λ…Έμ΄μ¦ˆ2μ—μ„œ B,C결정해도 문제 μ—†μŒ.


μ’Œν‘œ (x,y)에 λŒ€ν•΄μ„œ A,B,C,D,E의 λΉ„μœ¨μ„ μ €μž₯ν•˜λŠ” λ³€μˆ˜μ— λ…Έμ΄μ¦ˆ ν•¨μˆ˜μ—μ„œ κ΅¬ν•œ A의 λΉ„μœ¨, B의 λΉ„μœ¨μ„ λ”ν•˜κ³ , C,D,E의 λΉ„μœ¨λ„ λ”ν•΄μ€Œ


μ—¬κΈ°μ„œ ν•΅μ‹¬μΈκ²Œ, Aκ°€ 0~ 0.5κ³  Bκ°€ 0.5~1.0이면 0~0.4μ •λ„μ—μ„œ A 100 B 0 을 더해주고, 0.4 ~ 0.6은 μ λ‹Ήνžˆ κ³„μ‚°ν•΄μ„œ A B ν˜Όν•©μ„ 더해주고,

0.6 ~ 1.0이면 A 0 B 100을 λ”ν•΄μ€˜μ•Ό 함. 그러면 λ°”μ΄μ˜΄ 값이 μ’Œν‘œμ˜ 변화에 따라 μ„œμ„œνžˆ 변화함.


이제 두 λ…Έμ΄μ¦ˆμ—μ„œ λ‚˜μ˜¨ κ°’μœΌλ‘œ λ°”μ΄μ˜΄μ˜ 값듀을 μ „λΆ€ λ”ν•΄μ€¬μœΌλ©΄, μ—¬κΈ°μ„œ 색을 ꡬ해야 함.


μ‰½κ²Œ κ°€μžλ©΄ κ·Έλƒ₯ λ°”μ΄μ˜΄λ³„λ‘œ 색을 ν• λ‹Ήν•΄μ£Όκ³ , λΉ„μœ¨λŒ€λ‘œ μ‘°ν•©ν•΄μ£Όλ©΄ 됨.Β 

λ‚œ λ°”μ΄μ˜΄λ³„λ‘œ μœ—λ©΄, μ˜†λ©΄μ˜ 색을 λ‹€λ₯΄κ²Œ ν• λ‹Ήν•΄μ€˜μ„œ λ²„ν…μŠ€μ˜ 노말을 μ΄μš©ν•΄μ„œ 살짝 더 λ³΅μž‘ν•˜κ²Œ κ³„μ‚°ν•΄μ€Œ.



viewimage.php?id=2abcdd23dad63db0&no=24b0d769e1d32ca73cec8efa11d02831ed3c848cabfee483347b0fb096a803c552e0edc896df9f8274b09b7d8bcd97a3520c92a2999238543744a7f5b4ab6a22e713a0


viewimage.php?id=2abcdd23dad63db0&no=24b0d769e1d32ca73cec8efa11d02831ed3c848cabfee483347b0fb096a803c552e0edc896df9f8274b09b7d8bcd97a3520c92a2999238076417a3a6e3fe3e22aeaaf2


viewimage.php?id=2abcdd23dad63db0&no=24b0d769e1d32ca73cec8efa11d02831ed3c848cabfee483347b0fb096a803c552e0edc896df9f8274b09b7d8bcd97a3520c92a299923804621df5a0e6f9382216ee25


μ—„μ²­ λΆ€λ“œλŸ¬μ›€.


참고둜 λ°˜λ³΅λ˜λŠ” μ§€ν˜•μž„. ν•œμͺ½μœΌλ‘œ μ­‰ κ°€λ©΄ 이전에 있던 곡간이 λ‚˜μ˜¬ μ˜ˆμ •



viewimage.php?id=2abcdd23dad63db0&no=24b0d769e1d32ca73cec8efa11d02831ed3c848cabfee483347b0fb096a803c552e0edc896df9f8274b09b7d8bcd97a3520c92a2999238533144a4a7e4fa6f2295978a




이제 λΆ€λ“œλŸ½κ²Œ λ°”μ΄μ˜΄ μ‚¬μ΄μ—μ„œ 색이 λ°”λ€ŒλŠ”λ° 기쑴의 μ•Œκ³ λ¦¬μ¦˜μ— λ¬Έμ œκ°€ μƒκ²ΌμŒ.


κΈ°μ‘΄μ—λŠ” 쉐이더 λ‚΄λΆ€μ—μ„œ 색을 νŒλ³„ν•΄μ„œ λ¬Έμ œκ°€ μ—†μ—ˆλŠ”λ°, 이제 색을 cpuμ—μ„œ μ •ν•˜κ³  μ‰μ΄λ”λ‘œ λ„˜κ²¨μ£Όκ²Œλ˜λ‹ˆκΉ,Β 

μ •μœ‘λ©΄μ²΄λ₯Ό μ„€μΉ˜ν•˜λŠ” λ“± 각 μ‚Όκ°ν˜•μ— λŒ€ν•œ λ…Έλ§μ˜ μž¬κ³„μ‚°μ΄ ν•„μš”ν•˜κ²Œ 되면, 이전에 ꡬ해둔 λ°”μ΄μ˜΄ 색이 더이상 μœ νš¨ν•˜μ§€ μ•Šκ²Œ 됨.Β 

μ•„κΉŒ λ§ν–ˆλ“―μ΄ 노말에 따라 이게 μœ—λ©΄μΈμ§€, μ˜†λ©΄μΈμ§€ κ΅¬λΆ„ν•΄μ„œ 색을 μ‘°ν•©ν•΄μ£Όκ±°λ“ . 노말이 λ°”λ€Œλ©΄ 색도 λ°”λ€œ.


κ·Έλž˜μ„œ ν•„μš”μ— 따라 노말을 λ°”κΏ”μ„œ λ‹€μ‹œ 계산해주도둝 λ§Œλ“€μ—ˆλŠ”λ°, λ‹€ν–‰νžˆ 별 λ¬Έμ œλŠ” μ—†λŠ” λ“―.



κ·Έλ™μ•ˆ 속 썩이던 버그도 λ°œκ²¬ν•¨.

λ©”μΈμŠ€λ ˆλ“œμ—μ„œ λˆλ‹€κ³  아무 생각없이 두 코루틴 μ‚¬μ΄μ—μ„œ ν•˜λ‚˜μ˜ λ©”λͺ¨λ¦¬λ₯Ό μ΄μš©ν•˜κ³  μžˆμ—ˆμŒ.Β 

메쉬λ₯Ό λ©”μΈμŠ€λ ˆλ“œ λ°”κΉ₯μ—μ„œ ν•΄μ œν•΄μ€„ 수 μ—†κΈ° λ•Œλ¬Έμ—, λ‚œ μŠ€λ ˆλ“œ λ‚΄μ—μ„œλŠ” 큐에 λ„£μ–΄μ£Όκ³ , μŠ€λ ˆλ“œκ°€ λ‹€ 돌면 λ©”μΈμŠ€λ ˆλ“œμ—μ„œ 큐에 μŒ“μΈ 메쉬듀을 ν•΄μ œν•΄μ€Œ.

근데 μ΄λ•Œ 큐에 μŒ“μΈ 메쉬λ₯Ό μ²˜λ¦¬ν•΄μ£ΌλŠ” 코루틴이 두 μ’…λ₯˜κ°€ μžˆλŠ”λ° 이 λ‘κ°œκ°€ 같은 tmpλ³€μˆ˜λ₯Ό μ΄μš©ν•˜λ‹€λ³΄λ‹ˆ ν•œμͺ½μ—μ„œ μž‘μ—…μ€‘μΈλ° λ°˜λŒ€μͺ½μ—μ„œ μ΄ˆκΈ°ν™”λ₯Ό μ‹œμΌœλ²„λ¦Ό.


μŠ€λ ˆλ“œ μ“Έλ•ŒλŠ” 이런거 μ² μ €ν•˜κ²Œ κ΄€λ¦¬ν•˜λŠ”λ° λ“±μž”λ°‘μ΄ μ–΄λ‘‘λ‹€κ³  μ½”λ£¨ν‹΄μ—μ„œ 이러고 μžˆλŠ”κ±°λŠ” 상상도 λͺ»ν–ˆμŒ.




였늘 κ°€μž₯ κ³ μƒν•œκ±΄ λ”°λ‘œ μžˆλŠ”λ°, μ§„μ§œ μ—„μ²­ κ³ μƒν–ˆλŠ”λ° κ²°κ³Όκ°€ λ§ˆμŒμ— μ•ˆλ“€μ–΄μ„œ νκΈ°ν–ˆμŒ.



viewimage.php?id=2abcdd23dad63db0&no=24b0d769e1d32ca73cec8efa11d02831ed3c848cabfee483347b0fb096a803c552e0edc896df9f8274b09b7d8bcd97a3520c92a2999238533115a7a0e6ad3f22824a68


viewimage.php?id=2abcdd23dad63db0&no=24b0d769e1d32ca73cec8efa11d02831ed3c848cabfee483347b0fb096a803c552e0edc896df9f8274b09b7d8bcd97a3520c92a29992380d651cf0aae1fd3a22a6d31e


viewimage.php?id=2abcdd23dad63db0&no=24b0d769e1d32ca73cec8efa11d02831ed3c848cabfee483347b0fb096a803c552e0edc896df9f8274b09b7d8bcd97a3520c92a2999238566c1ca4aab0a93a220edbdf

μ§„μ§œ μŠ€νŠΈλ ˆμŠ€λ°›λ‹€κ°€ μ£½μ„κ±°κ°™μ•„μ„œ κ·Έλƒ₯ μ›λž˜λŒ€λ‘œ 되돌림. 해결이 μ•ˆλ˜λ”λΌ. μ§€κΈˆ μ“°λŸ¬μ§ˆκ±°κ°™μ•„.






μ‹€μ œ κ²Œμž„ λ‚΄μ—μ„œλŠ” 큰 κ΅¬λŠ” μ„€μΉ˜/제거λ₯Ό λͺ»ν•˜κ²Œ λ§Œλ“€ μƒκ°μž„.


viewimage.php?id=2abcdd23dad63db0&no=24b0d769e1d32ca73cec8efa11d02831ed3c848cabfee483347b0fb096a803c552e0edc896df9f8274b09b7d8bcd97a3520c92a2999238056510a6f5b8ad3a22f4ac27


λ”λŸ½κ³  μ„€μΉ˜ν›„ κ³€λž€ν•΄μ§„λ‹€λŠ”κ²ŒΒ μ΄μœ κ°€ 제일 크고, κ²Œμž„ν”Œλ ˆμ΄μ€‘Β μ§œμ¦λ§Œ λ‚˜λŠ” μš”μ†ŒμΌ 것 κ°™μŒ.Β 

μ™„λ²½ν•˜κ²Œ λ„ν˜•μ΄ κ³„μ‚°λ˜λ©΄ λ¬΄λ‚œν•˜κ² λŠ”λ°, μ•Œκ³ λ¦¬μ¦˜ νŠΉμ„±μƒ 메쉬가 μ΄μ˜μ§€ μ•Šκ²Œ μƒμ„±λ λ•Œκ°€ κ½€ 많음. 근데 이게 λ„ˆλ¬΄ μ»€μ§€λ‹ˆκΉ λ„ˆλ¬΄ λ”λŸ¬μ›Œμ§.



viewimage.php?id=2abcdd23dad63db0&no=24b0d769e1d32ca73cec8efa11d02831ed3c848cabfee483347b0fb096a803c552e0edc896df9f8274b09b7d8bcd97a3520c92a2999238063043f7f6b9aa6f2296fe7a


viewimage.php?id=2abcdd23dad63db0&no=24b0d769e1d32ca73cec8efa11d02831ed3c848cabfee483347b0fb096a803c552e0edc896df9f8274b09b7d8bcd97a3520c92a299923804661cf6f6b4f73222c4e508



λ°˜λ©΄μ— μž‘μ€ ꡬ듀은 λ§˜μ— 듬. λ­”κ°€ 귀여움.



viewimage.php?id=2abcdd23dad63db0&no=24b0d769e1d32ca73cec8efa11d02831ed3c848cabfee483347b0fb096a803c552e0edc896df9f8274b09b7d8bcd97a3520c92a2999238573647f0f2e2ab6822e4e44b

이게 λ”± 감당 κ°€λŠ₯ν•œ μ΅œλŒ€ μ‚¬μ΄μ¦ˆμΈλ“―. λ°˜μ§€λ¦„ : 1λ―Έν„°