{"id":196,"date":"2009-08-03T23:20:44","date_gmt":"2009-08-03T22:20:44","guid":{"rendered":"http:\/\/netrix.org.pl\/?p=196"},"modified":"2011-01-31T21:43:08","modified_gmt":"2011-01-31T20:43:08","slug":"sdkmeshinfo","status":"publish","type":"post","link":"https:\/\/netrix.org.pl\/index.php\/2009\/08\/03\/sdkmeshinfo\/","title":{"rendered":"SDKMeshInfo"},"content":{"rendered":"<p>Pisz\u0105c r\u00f3\u017cne efekty graficzne, w pewnym momencie mo\u017cemy stwierdzi\u0107, \u017ce potrzebujemy jakiego\u015b innego modelu. Wtedy nasuwa si\u0119 r\u00f3wnie\u017c pytanie &#8220;sk\u0105d wzi\u0105\u0107 taki model?&#8221;. Tutaj przychodzi z pomoc\u0105 DirectX SDK, kt\u00f3re posiada du\u017c\u0105 ilo\u015b\u0107 r\u00f3\u017cnych modeli w formacie .x oraz .sdkmesh. Z formatem .x mo\u017cna sobie poradzi\u0107 funkcj\u0105<\/p>\n<pre lang=\"cpp\">D3DXLoadMeshFormX<\/pre>\n<p>Funkcja ta wczytuje i parsuje model, zwracaj\u0105c wska\u017anik, z kt\u00f3rego mo\u017cna ju\u017c korzysta\u0107.<\/p>\n<p><a href=\"http:\/\/netrix.org.pl\/wp-content\/2009\/08\/pike.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-medium wp-image-197\" title=\"SDKMeshInfo\" src=\"http:\/\/netrix.org.pl\/wp-content\/2009\/08\/pike-300x180.png\" alt=\"SDKMeshInfo\" width=\"300\" height=\"180\" srcset=\"https:\/\/netrix.org.pl\/wp-content\/2009\/08\/pike-300x180.png 300w, https:\/\/netrix.org.pl\/wp-content\/2009\/08\/pike.png 728w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a>Niestety format .x jest bardzo prosty, poniewa\u017c zawiera on tylko jeden zestaw materia\u0142\u00f3w i tekstur\u0119 diffuse na subset. Problem ten rozwi\u0105zano tworz\u0105c nowy format z rozszerzeniem .sdkmesh. Powsta\u0142 on i jest wykorzystywany na potrzeby przyk\u0142ad\u00f3w Direct3D 10. Pliki tego formatu mog\u0105 zawiera\u0107 kilka modeli, podzielonych na kilka subset\u00f3w. Materia\u0142y zosta\u0142y rozszerzone o tekstury normal i specular. Dodane zosta\u0142y r\u00f3wnie\u017c informacje o klatkach animacji, natomiast szczeg\u00f3\u0142y danej klatki zawiera osobny plik z rozszerzeniem .sdkmesh_anim. Wi\u0119cej szczeg\u00f3\u0142\u00f3w dotycz\u0105cych tego formatu znajduje si\u0119 w dokumentacji pod has\u0142em &#8220;Overview of the SDK Mesh File Format&#8221;.<\/p>\n<p>Postanowi\u0142em si\u0119 zainteresowa\u0107 tym formatem nie tylko z powodu tego, \u017ce cz\u0119\u015b\u0107 modeli jest w nim zapisana, ale potrzebowa\u0142em modeli, kt\u00f3re m\u00f3g\u0142bym wykorzysta\u0107 do mojej zabawy z animacj\u0105 opart\u0105 na klatkach kluczowych. W\u0142a\u015bnie z tego powodu napisa\u0142em aplikacj\u0119, kt\u00f3r\u0105 tu zamieszczam. SDKMeshInfo jest programem do podgl\u0105du bebech\u00f3w plik\u00f3w .sdkmesh. Nie posiada on opcji ich wy\u015bwietlania, ale pokazuje pe\u0142ne dane z nag\u0142\u00f3wk\u00f3w zawartych we wskazanym pliku.<\/p>\n<p><a title=\"SDKMeshInfo.zip\" href=\"http:\/\/netrix.org.pl\/content\/blog\/SDKMeshInfo.zip\" target=\"_blank\">Download<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Pisz\u0105c r\u00f3\u017cne efekty graficzne, w pewnym momencie mo\u017cemy stwierdzi\u0107, \u017ce potrzebujemy jakiego\u015b innego modelu. Wtedy nasuwa si\u0119 r\u00f3wnie\u017c pytanie &#8220;sk\u0105d wzi\u0105\u0107 taki model?&#8221;. Tutaj przychodzi z pomoc\u0105 DirectX SDK, kt\u00f3re posiada du\u017c\u0105 ilo\u015b\u0107 r\u00f3\u017cnych modeli w formacie .x oraz .sdkmesh. Z formatem .x mo\u017cna sobie poradzi\u0107 funkcj\u0105 D3DXLoadMeshFormX Funkcja ta wczytuje i parsuje model, zwracaj\u0105c [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[47],"tags":[185,10,97,98],"_links":{"self":[{"href":"https:\/\/netrix.org.pl\/index.php\/wp-json\/wp\/v2\/posts\/196"}],"collection":[{"href":"https:\/\/netrix.org.pl\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/netrix.org.pl\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/netrix.org.pl\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/netrix.org.pl\/index.php\/wp-json\/wp\/v2\/comments?post=196"}],"version-history":[{"count":9,"href":"https:\/\/netrix.org.pl\/index.php\/wp-json\/wp\/v2\/posts\/196\/revisions"}],"predecessor-version":[{"id":692,"href":"https:\/\/netrix.org.pl\/index.php\/wp-json\/wp\/v2\/posts\/196\/revisions\/692"}],"wp:attachment":[{"href":"https:\/\/netrix.org.pl\/index.php\/wp-json\/wp\/v2\/media?parent=196"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/netrix.org.pl\/index.php\/wp-json\/wp\/v2\/categories?post=196"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/netrix.org.pl\/index.php\/wp-json\/wp\/v2\/tags?post=196"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}