뭐 metal이 흑역사(?)가 될 수도 있다고 생각은 하지만, metal api 자체는 매우 훌륭합니다. 공개된 자료를 다 흝어 본 결과 OpenGL보다 쓰기 편하고, 개념적으로 잘 정리되어 있습니다. DirectX는 안 본지 꽤 되어서 비교하긴 뭐 하지만, DX11? 뭐 그 쯤을 생각해 보면, api 자체는 metal 더 직관적이고 좋네요. <div><font size="1"><br></font></div> <div>가이드에 있는 샘플 일부를 가져와 봤습니다.</div> <div><br></div> <div>// library 가 있네요. </div> <div> <div class="page" title="Page 52"> <div class="layoutArea"> <div class="column"> <p><font size="1"><span style="font-family:Menlo;"> NSError *errors;<br></span></font><font size="1"><span style="font-family:Menlo;"> id <MTLLibrary> library = [device newLibraryWithSource:progSrc options:nil </span><span style="font-family:Menlo;line-height:1.5;">error:&errors];<br></span></font><font size="1"><span style="font-family:Menlo;"> id <MTLFunction> vertFunc = [library newFunctionWithName:@"hello_vertex" </span><span style="font-family:Menlo;line-height:1.5;">options:nil error:&errors];<br></span></font><font size="1"><span style="font-family:Menlo;"> id <MTLFunction> fragFunc = [library newFunctionWithName:@"hello_fragment" </span><span style="font-family:Menlo;line-height:1.5;">options:nil error:&errors];</span></font></p><pre></pre><pre></pre> <p><span style="font-family:Menlo;"><font size="1"> pipeline = [device newRenderPipelineStateWithDescriptor:pipelineDesc error:&errors]; </font></span></p> <pre><span style="font-family:Menlo;"></span></pre><pre><span style="font-family:Menlo;"></span></pre> <pre><span style="font-family:Menlo;"></span></pre> <pre><span style="font-family:Menlo;"></span></pre> <div><span style="font-family:'굴림';white-space:normal;">좋긴 좋습니다. <br></span><span style="font-size:9pt;line-height:1.5;"><br></span></div> <div><span style="font-size:9pt;line-height:1.5;">Metal을 쓰면 좋은 점을 꼽아보자면<br></span><span style="font-family:'굴림';white-space:normal;">1. 속도 10 배 (이게 약간 의심스럽네요. 갑자기 10배라니, 애플이 약간 "뻥"을 치는 경우가 있는데 이번에는 좀 심하게 친 것도 같습니다. 그래도 엄청난 속도 향상임에는 의심의 여지가 없네요.)<br></span>2. Metal api, metal shading language 둘 다 OpenGL보다 직관적이고, 쓰기 편합니다. 더 막강한 거 같기도 하고...</div> <div><br></div> <div>Metal을 쓰기 주저되는 점</div> <div>1. 많은 변화를 예고합니다. swift가 나온 상태에서 swift호환 문제가 있을 거 같고, descriptor가 엄청 많은데 이 것들도 정리가 될 듯 하기도 하고, 아무튼, 너무 많이 변해서 기다려 배우는 게 나을지도 모르겠습니다. 그러니까, 열심히 봤는데 쓰지를 못 하는 "흑역사"가 될 수도 있는 거죠. ㅠ.ㅠ</div> <div>2. 자료가 너무 부족하다. WWDC 2014에서 공개한 Sample Code에 없네요. Source 받아보세요라고 분명 말 했는데, 없어요. XCode에서 돌려보면 module 'Metal' not found. 간단히 말하면 아직 없다는 거죠. ㅠ.ㅠ </div> <div><br></div> <div>결론은 이겁니다. 아직 이르다. 그럼, 난 뭐 한거지. ㅠ.ㅠ 역쉬 내 예감이 맞았어, 소소한 흑역사 추가. ㅠ.ㅠ</div> <div><br></div> <div>p.s. 그래도 보시겠다는 분들은 metal 관련 비디오 두편 보시고, metal programming guide는 대충 보세요. 서로 겹치는 게 많으면서도 미묘하게 보충하고 있네요. metal shading language는 안 봤습니다. </div> <div>p.s. 마지막 글입니다. 공부하면서 글 적는게 보통 스트레스가 아니네요. 왜 사람들이 가르치듯 글을 쓰는지 알겠습니다. 일단, 다 익히고, 확신을 가지면서 글을 써야지, 배우면서 글을 쓰니까 아주 머리가 뽀개지는 것 같네요.</div> <div>p.s. 읽어주셔서 감사합니다.</div> <div><br></div> <p><br></p> </div> </div> </div></div>
댓글 분란 또는 분쟁 때문에 전체 댓글이 블라인드 처리되었습니다.