سؤال

هل تنسيق ملفات كائن Pixel و Vertex Shader كما تم إنتاجها بواسطة FXC.Exe الموثقة في أي مكان إما رسميًا أو غير رسمي؟

أود أن أكون قادرًا على قراءة الاسم الثابت لتسجيل المهام من ملفات التظليل. أعلم أن إطار التأثيرات في D3DX يمكنه القيام بذلك ، لكنني بحاجة إلى تجنب استخدام D3DX لأنه قد لا يتم تثبيته على آلات المستخدم ولا أحتاجه لأي شيء آخر ، لذا أريد تجنب الاضطرار إلى تشغيل تحديث DirectX .

إذا كان بإمكان إطار التأثيرات القيام بذلك ، فعندئذٍ يمكنني ذلك إذا كان بإمكاني معرفة تنسيق الملف ، لكن يبدو أنني أجد أنه موثق في أي مكان.

(هذا للاستخدام في DirectX9)

هل كانت مفيدة؟

المحلول

Microsoft تبقي هذه المعلومات بعيدًا عن عمد. وأنت تستخدم DirectX 9 ITS نسبياً من السهل مهندس متخلف التنسيق رغم ذلك. إذا كتبت قطعة بسيطة من تجميع التظليل ، يمكنك التحقق من ما جمعه الكود الذي تم إرجاعه في الجانب الآخر. من خلال إجراء تعديلات على المجمع ، يمكنك أن ترى كيف يتغير رمز البايت. ستبدأ في رؤية أنماط في كيفية معالجة السجلات ومكان تشفير التعليمات. يمكنك ذلك ، ببطء ولكن بثبات ، العمل على رمز البايت. لن يكون سريعًا جدًا!

نصائح أخرى

من MSDN:

ASM Tader Reference (Windows)

تظليل التنسيق الثنائي

يتم تعريف تخطيط Bitwise لتيار تعليمات التظليل في d3d9types.h. إذا كنت ترغب في تصميم برنامج التحويل البرمجي التظليل الخاص بك أو أدوات البناء وتريد المزيد من المعلومات حول دفق الرمز المميز للتظليل ، راجع مجموعة Direct3D 9 Device Development (DDK).

لذلك يمكنك إما النظر من خلال "d3d9type.h" ومحاولة اكتشاف ذلك على هذا النحو (كان له نظرة سريعة ويمكن أن ترى التعداد/الأنواع التي يجب أن تحتاجها ، ولكن ليس كيف منظمها) ، أو تنزيل DDK وقراءة المسؤول توثيق.


يمكن العثور على مزيد من المعلومات هنا: Direct3D Rade Rades (قم بتوسيع الشجرة على الجانب الأيسر من الشاشة للحصول على جميع المعلومات).

وضعت Microsoft مواصفات التنسيق على الإنترنت هنا: Direct3D Rade Rades.

إنه يشير إلى الثوابت بالاسم (على سبيل المثال. D3DSIO_DCL) ، لذلك من المحتمل أنك لا تزال بحاجة إلى Windows DDK للحصول على أي استخدام منه.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top