Direct3D рдкрд░ рдкрд╛рдиреА рдЦреАрдВрдЪреЗрдВред рднрд╛рдЧ 1. рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдФрд░ рдПрдкреАрдЖрдИ

рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рдХрдИ рднрд╛рдЧреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд, рдореИрдВ Direct3D (10-11) рдХреЗ рдЖрдзреБрдирд┐рдХ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреА рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреЛ рд░реЗрдЦрд╛рдВрдХрд┐рдд рдХрд░реВрдВрдЧрд╛, рдФрд░ рдпрд╣ рднреА рджрд┐рдЦрд╛рдКрдВрдЧрд╛ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рдкреНрд░рд╡рд╛рд▓ рднрд┐рддреНрддрд┐ рджреГрд╢реНрдп рдХреЛ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдП, рдЬрд┐рд╕рдХрд╛ рдореБрдЦреНрдп рд▓рд╛рдн рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд░рд▓ рд╣реИ, рд▓реЗрдХрд┐рди рд╕реБрдВрджрд░ рдФрд░ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдареЛрд╕ рджрд┐рдЦрдиреЗ рд╡рд╛рд▓рд╛ рдкрд╛рдиреА:
рдЫрд╡рд┐


Direct3D рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдХреЗ рд╢реБрд░реВ рдХрд░реЗрдВред

Direct3D API рдЖрдзреБрдирд┐рдХ рд╡реАрдбрд┐рдпреЛ рдХрд╛рд░реНрдб рдХреА рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХрд╛ рдПрдХ рд╕реАрдзрд╛ рдкреНрд░рддрд┐рдмрд┐рдВрдм рд╣реИ, рдФрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдлреЙрд░реНрдо рдХреЗ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдХреЛ рдЗрдирдХреИрдкреНрд╕реБрд▓реЗрдЯ рдХрд░рддрд╛ рд╣реИ:

рдЫрд╡рд┐

рдЪрд┐рддреНрд░рд╛ рдореЗрдВ, рдХрдиреНрд╡реЗрдпрд░ рдХреЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдЪрд░рдгреЛрдВ рдХреЛ рдЧреЛрд▓ рдЖрдпрддреЛрдВ рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рджреНрд╡рд╛рд░рд╛ рд╡рд┐рдиреНрдпрд╛рд╕ рдпреЛрдЧреНрдп рд▓реЛрдЧреЛрдВ рджреНрд╡рд╛рд░рд╛ рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдЕрдм рдореИрдВ рдкреНрд░рддреНрдпреЗрдХ рдЪрд░рдг рдХреЛ рдЕрд▓рдЧ рд╕реЗ рд╕рдордЭрд╛рдКрдВрдЧрд╛ред

рдЗрдирдкреБрдЯ рдЕрд╕реЗрдВрдмрд▓рд░ (рдЖрдИрдП рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдХреНрд╖рд┐рдкреНрдд) - рд╕рд┐рд╕реНрдЯрдо рдореЗрдореЛрд░реА рдореЗрдВ рд╕реНрдерд┐рдд рдмрдлрд╝рд░реНрд╕ рд╕реЗ рд╡рд░реНрдЯреЗрдХреНрд╕ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЙрдирд╕реЗ рдкреНрд░рд╛рдЗрдорд┐рдЯрд┐рд╡реНрд╕ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдХреЗ рдмрд╛рдж рдХреЗ рдЪрд░рдгреЛрдВ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдИрдП рдбреА 3 рдбреА рд░рдирдЯрд╛рдЗрдо рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рдХреБрдЫ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдХреЛ рд╡рд░реНрдЯреАрдХрд▓ рд╕реЗ рдЬреЛрдбрд╝ рджреЗрддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рд╡рд░реНрдЯреЗрдХреНрд╕ рдирдВрдмрд░ред

рд╡рд░реНрдЯреЗрдХреНрд╕ рд╢реЗрдбрд░ (рд╡рд░реНрдЯреЗрдХреНрд╕ рд╢реЗрдбрд░, рд╡реАрдПрд╕) рдПрдХ рдЕрдирд┐рд╡рд╛рд░реНрдп, рдФрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдпреЛрдЧреНрдп рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдЪрд░рдг рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣ рдкреНрд░рддреНрдпреЗрдХ рд╡рд░реНрдЯреЗрдХреНрд╕ (рдЕрдВрдЧреНрд░реЗрдЬреА рд╡рд░реНрдЯреЗрдХреНрд╕ ) рдХреЗ рд▓рд┐рдП рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдЗрдирдкреБрдЯ рдПрд╕реЗрдВрдмрд▓рд░ рд╕реЗ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд░реНрдЯрд┐рдХрд▓ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрдирдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреЗ рд░реВрдкрд╛рдВрддрд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдкреНрд░рдгрд╛рд▓реА рд╕реЗ рджреВрд╕рд░реЗ рдореЗрдВ, рдорд╛рдирджрдВрдб, рдмрдирд╛рд╡рдЯ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ, рдкреНрд░рдХрд╛рд╢ рдЧрдгрдирд╛, рдФрд░ рдЕрдзрд┐рдХ рдХреА рдкреАрдврд╝реА рдХреЗ рд▓рд┐рдПред рд╡рд░реНрдЯреЗрдХреНрд╕ рд╢реЗрдбрд░ рд╕реЗ рдбреЗрдЯрд╛ рдпрд╛ рддреЛ рд╕реАрдзреЗ рд░реИрд╕реНрдЯрд░рд╛рдЗрдЬрд╝рд░ рдореЗрдВ, рдпрд╛ рд╕реНрдЯреНрд░реАрдо рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдпрджрд┐ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдХрд╛ рдпрд╣ рдЪрд░рдг рд╕реНрдерд╛рдкрд┐рдд рд╣реИ, рд▓реЗрдХрд┐рди рдЬреНрдпрд╛рдорд┐рддреАрдп рд╢реЗрдбрд░ рдирд╣реАрдВ рд╣реИ), рдпрд╛ рдЬреНрдпрд╛рдорд┐рддреАрдп рд╢реЗрдбрд░ рдХреЗ рд▓рд┐рдП, рдпрд╛ рд╕рддрд╣ рд╢реЗрдбрд░ рдХреЗ рд▓рд┐рдПред

рд╣рд▓ рд╢реЗрдбрд░ (рд╕рддрд╣ shader, HS), рдбреЛрдореЗрди рд╢реЗрдбрд░ (рдбреЛрдореЗрди shader, DS) рдФрд░ Tesselator (tessellator) , Shader Model 5.0 (рдФрд░ D3D11, рдХреНрд░рдорд╢рдГ) рдореЗрдВ рдЬреЛрдбрд╝реЗ рдЧрдП рдЪрд░рдг рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЯреЗрд╕реБрдПрд╢рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЫреЛрдЯреЗ рд▓реЛрдЧреЛрдВ рдореЗрдВ рдкреНрд░рд┐рдорд┐рдЯрд┐рд╡ рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рддреЗ рд╣реБрдП) рдЫрд╡рд┐ рд╡рд┐рд╕реНрддрд╛рд░ рдореЗрдВ рд╡реГрджреНрдзрд┐)ред рдХрдиреНрд╡реЗрдпрд░ рдХреЗ рдпреЗ рдЪрд░рдг рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИрдВ, рдФрд░ рдЪреВрдВрдХрд┐ рд╡реЗ рдореЗрд░реЗ рджреГрд╢реНрдп рдореЗрдВ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЙрди рдкрд░ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдзреНрдпрд╛рди рдирд╣реАрдВ рджреВрдВрдЧрд╛ред рдЬреЛ рд▓реЛрдЧ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, MSDN рдкрд░ред

рдЬреНрдпрд╛рдорд┐рддрд┐ рд╢реЗрдбрд░ (рдЬреНрдпрд╛рдорд┐рддреАрдп рд╢реЗрдбрд░, рдЬреАрдПрд╕) - рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдХреЗ рдкрд┐рдЫрд▓реЗ рдЪрд░рдгреЛрдВ рджреНрд╡рд╛рд░рд╛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХреЛрдиреЗ рд╕реЗ рдЗрдХрдЯреНрдареЗ рд╣реБрдП рдЖрджрд┐рдо (рдмрд┐рдВрджреБ, рд░реЗрдЦрд╛ рдпрд╛ рддреНрд░рд┐рдХреЛрдг) рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддрд╛ рд╣реИред рдЬреНрдпрд╛рдорд┐рддреАрдп рд╢реЗрдбреНрд╕ рдордХреНрдЦреА рдкрд░ рдирдП рдкреНрд░рд╛рдЗрдореЗрдЯрд┐рд╡ рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдЕрд░реНрдерд╛рдд, рдЙрдирдХреЗ рдирд┐рдХрд╛рд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ 1-рдЯреВ -1 рдирд╣реАрдВ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╡рд░реНрдЯреЗрдХреНрд╕ рд╢реЗрдбреНрд╕)ред рд╡реЗ рдЫрд╛рдпрд╛ (рдЫрд╛рдпрд╛ рдХреА рдорд╛рддреНрд░рд╛), рд╕реНрдкреНрд░рд╛рдЗрдЯреНрд╕ (рдХрдг рдкреНрд░рдгрд╛рд▓реА рдЖрджрд┐), рдкреНрд░рддрд┐рдмрд┐рдВрдм (рдЬреИрд╕реЗ рдПрдХ рдШрди рдорд╛рдирдЪрд┐рддреНрд░ рдореЗрдВ рдПрдХрд▓-рдкрд╛рд╕ рдкреНрд░рддрд┐рдкрд╛рджрди) рдХреА рдЬреНрдпрд╛рдорд┐рддрд┐ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдФрд░ рдЬреИрд╕реЗред рдпрджреНрдпрдкрд┐ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдЯреЗрд╕реЗрд▓реЗрд╢рди рдХреЗ рд▓рд┐рдП рднреА рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╣ рдЕрдиреБрд╢рдВрд╕рд┐рдд рдирд╣реАрдВ рд╣реИред рдЬрд┐рдпреЛрдореЗрдЯреНрд░рд┐рдХ рд╢реЗрдбрд░ рд╕реЗ рдбреЗрдЯрд╛ рдпрд╛ рддреЛ рд╕реНрдЯреНрд░реАрдо рдЖрдЙрдЯрдкреБрдЯ рдпрд╛ рд░реИрд╕реНрдЯрд░рд╛рдЗрдЬрд╝рд░ рдХреЛ рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИред

рд╕реНрдЯреНрд░реАрдо рдЖрдЙрдЯрдкреБрдЯ (SO) - рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдХрд╛ рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рдЪрд░рдг, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рджреНрд╡рд╛рд░рд╛ рд╕рдВрд╕рд╛рдзрд┐рдд рд╡рд░реНрдЬрди рдХреЛ рд╕рд┐рд╕реНрдЯрдо рдореЗрдореЛрд░реА рдореЗрдВ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рддрд╛рдХрд┐ SO рдирд┐рдХрд╛рд╕ рдХреЛ CPU рджреНрд╡рд╛рд░рд╛ рдкрдврд╝рд╛ рдЬрд╛ рд╕рдХреЗ рдпрд╛ рдЕрдЧрд▓реА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ)ред рдпрд╣ рдПрдХ рдЬреНрдпрд╛рдорд┐рддреАрдп shader рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ, рдпрд╛, рдЗрд╕рдХреЗ рдЕрднрд╛рд╡ рдореЗрдВ, рдХрд┐рд╕реА рд╢реАрд░реНрд╖ рдпрд╛ рдбреЛрдореЗрди shader рд╕реЗред

Rasterizer (rasterizer, RS) - рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдХрд╛ "рджрд┐рд▓"ред рдЗрд╕ рдЪрд░рдг рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп, рдЬреИрд╕рд╛ рдХрд┐ рдирд╛рдо рдХрд╛ рддрд╛рддреНрдкрд░реНрдп рд╣реИ, рдЖрджрд┐рдо рдХреЛ рднреБрдирд╛рдирд╛ рд╣реИ, рдЕрд░реНрдерд╛рддреН, рдЙрдиреНрд╣реЗрдВ рдкрд┐рдХреНрд╕реЗрд▓ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдирд╛ (рд╣рд╛рд▓рд╛рдВрдХрд┐ "рдкрд┐рдХреНрд╕реЗрд▓" рдирд╛рдо рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рд╣реА рдирд╣реАрдВ рд╣реИ - рдПрдХ рдкрд┐рдХреНрд╕реЗрд▓ рдХрд╛ рдЖрдорддреМрд░ рдкрд░ рдорддрд▓рдм рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рд╕реАрдзреЗ рдлреНрд░реЗрдордмрдлрд╝рд░ рдореЗрдВ рд╕реНрдерд┐рдд рд╣реЛрддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддреН рд╕реНрдХреНрд░реАрди рдкрд░ рдХреНрдпрд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ) , рдЗрд╕рд▓рд┐рдП "рдЯреБрдХрдбрд╝реЗ" рдЕрдзрд┐рдХ рд╕рд╣реА рд╣реЛрдВрдЧреЗ)ред рд░реЗрдЦрд╛рдкреБрдВрдЬ рдкрд╛рдЗрдк рд▓рд╛рдЗрди рдХреЗ рдкрд┐рдЫрд▓реЗ рдЪрд░рдгреЛрдВ рд╕реЗ рдХреЛрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡реЗрдХреНрдЯрд░ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдЧрд╛, рдФрд░ рдЗрд╕реЗ рд░реЗрдЦрд╛рдкреБрдВрдЬ рдореЗрдВ рдмрджрд▓ рджреЗрдЧрд╛, рджрд╛рдпрд░реЛрдВ рдХреЗ рдмрд╛рд╣рд░ рдЖрджрд┐рдо рдХрд╛рдЯрдиреЗ, рдХреЛрдиреЗ рд╕реЗ рдЬреБрдбрд╝реЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдкреНрд░рдХреНрд╖реЗрдкрд┐рдд рдХрд░реЗрдЧрд╛ (рдЬреИрд╕реЗ рдмрдирд╛рд╡рдЯ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ) рдФрд░ рджреЛ-рдЖрдпрд╛рдореА рджреЗрдЦрдиреЗ рдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдЗрди рдкрджреЛрдВ рдХреЛ рдкреЗрд╢ рдХрд░рдирд╛ (рдЕрдВрдЧреНрд░реЗрдЬреА) рд╡реНрдпреВрдкреЛрд░реНрдЯ )ред рдпрджрд┐ рдПрдХ рд╕реНрдерд╛рдкрд┐рдд рд╣реИ, рддреЛ рд░реЗрдЦрд╛рдкреБрдВрдЬ рд╕реЗ рдбреЗрдЯрд╛ рдкрд┐рдХреНрд╕реЗрд▓ shader рдореЗрдВ рдЬрд╛рддрд╛ рд╣реИред

рдкрд┐рдХреНрд╕реЗрд▓ рд╢реЗрдбрд░ (рдкрд┐рдХреНрд╕реЗрд▓ рд╢реЗрдбрд░, рдкреАрдПрд╕) - рд░реИрд╕реНрдЯрд░рд╛рдЗрдЬрд╝рд░ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдЫрд╡рд┐ рдХреЗ рдЯреБрдХрдбрд╝реЗ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдЧреНрд░рд╛рдлрд┐рдХ рдкреНрд░рднрд╛рд╡реЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рдкрд░, рдЖрдЙрдЯрдкреБрдЯ рдорд░реНрдЬрд░ рдЪрд░рдг рдореЗрдВ, рдЯреБрдХрдбрд╝реЗ рдХрд╛ рд░рдВрдЧ рджреЗрддрд╛ рд╣реИ, рдФрд░, рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ, рдЧрд╣рд░рд╛рдИ рдореВрд▓реНрдп (рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдХреМрди рд╕реЗ рдЯреБрдХрдбрд╝реЗ рдХреИрдорд░реЗ рдХреЗ рдХрд░реАрдм рд╣реИрдВ)ред

рдЖрдЙрдЯрдкреБрдЯ рдорд░реНрдЬрд░ (OM) рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдХрд╛ рдЕрдВрддрд┐рдо рдЪрд░рдг рд╣реИред рдкрд┐рдХреНрд╕реЗрд▓ рд╢реЗрдбрд░ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдкреНрд░рддреНрдпреЗрдХ рдЯреБрдХрдбрд╝реЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдПрдХ рдЧрд╣рд░рд╛рдИ рдкрд░реАрдХреНрд╖рдг рдФрд░ рдПрдХ рд╕реНрдЯреИрдВрд╕рд┐рд▓ рдкрд░реАрдХреНрд╖рдг рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЯреБрдХрдбрд╝рд╛ рдлрд╝реНрд░реЗрдордмрдлрд╝рд░ рдореЗрдВ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдпрджрд┐ рдпрд╣ рдЪрд╛рд▓реВ рд╣реИ рддреЛ рд░рдВрдЧреЛрдВ рдХреЛ рдорд┐рд▓рд╛рдПрдВред

рдЕрдм рдПрдкреАрдЖрдИ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реАред

Direct3D API рд▓рд╛рдЗрдЯрд╡реЗрдЯ COM ( Microsoft рдШрдЯрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЙрдбрд▓ ) рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред рдЗрддрдирд╛ рд╣рд▓реНрдХрд╛ рдХрд┐ рдЗрд╕рдореЗрдВ "рдкреВрд░реНрдг-рднрд╛рдЧ" COM рд╕реЗ рдХреЗрд╡рд▓ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдмрдиреА рд╣реБрдИ рд╣реИред

рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рдПрдХ COM рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рд╕реЗ рдЕрдкрд░рд┐рдЪрд┐рдд рд╣реИрдВ - рдПрдХ рдЫреЛрдЯрд╛ рдЧреЗрдп рд╡рд┐рд╖рдпрд╛рдВрддрд░ред

COM рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ .NET рд╕реЗ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЗ рдХрд░реАрдм рд╣реИ (рдХреНрдпреЛрдВрдХрд┐ .NET рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, COM рдХрд╛ рд╡рд┐рдХрд╛рд╕ рд╣реИ)ред рдЗрд╕рдХреЗ рдореВрд▓ рдореЗрдВ, рдпрд╣ рдПрдХ рд╕рд╛рд░ рд╡рд░реНрдЧ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдХреЗрд╡рд▓ рд╡рд┐рдзрд┐рдпрд╛рдБ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдПрдХ 16-рдмрд╛рдЗрдЯ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ ( GUID ) рд╕реМрдВрдкрд╛ рдЧрдпрд╛ рд╣реИред рд╢рд╛рд░реАрд░рд┐рдХ рд░реВрдк рд╕реЗ, рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХрд╛ рдПрдХ рд╕рдВрдЧреНрд░рд╣ рд╣реИ, рдЬреЛ рдХрд┐ рдкреЙрдЗрдВрдЯ рдЯреВ рдлрдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд░рдгреА рдХреЗ рд▓рд┐рдП рдПрдХ рдкреЙрдЗрдВрдЯрд░ рд╣реИ (рдПрдХ рд╕реА-рд╕рдВрдЧрдд рдПрдмреАрдЖрдИ рдХреЗ рд╕рд╛рде, рдФрд░ рдЖрдорддреМрд░ рдкрд░ рдПрдХ stdcall рдХреЙрд▓рд┐рдВрдЧ рдХрдиреНрд╡реЗрдВрд╢рди рдХреЗ рд╕рд╛рде), рдЬреЛ рдкрд╣рд▓реЗ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреЙрдЗрдВрдЯрд░ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдкреАрдЫреЗ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИ рдЬреЛ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред Microsoft рдпрд╣ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рд╡рд╕реНрддреБ рд╕реЗ рд╕рдВрдкрд░реНрдХ рдХрд░рдиреЗ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рддрд░реАрдХрд╛ рдЬреЛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ, рдЙрд╕ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреЙрдЗрдВрдЯрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, рдЕрд░реНрдерд╛рддреН рдЙрд╕рдХреЗ рддрд░реАрдХреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗред

рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЛ рдПрдХ рджреВрд╕рд░реЗ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рд▓рд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдбрд╛рдпрд░реЗрдХреНрдЯ COM рдореЗрдВ рдЙрди рд╕рд╣рд┐рдд рдЕрдзрд┐рдХрд╛рдВрд╢ COM рдЗрдВрдЯрд░рдлреЗрд╕, рдПрдХ рд╡рд┐рд╢реЗрд╖ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓реЗ рд╣реИрдВ - IUnogn , рдЬреЛ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдЬреАрд╡рдирдХрд╛рд▓ рдкрд░ рдирд┐рдпрдВрддреНрд░рдг рд░рдЦрддрд╛ рд╣реИ рдЬреЛ рд╕рдВрджрд░реНрдн рдХреА рдЧрд┐рдирддреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реЗ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЛ рдкреЙрдЗрдВрдЯрд░реНрд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЙрдирдХреЗ GUID рджреНрд╡рд╛рд░рд╛ред

рдореБрдЭреЗ рдпрд╣ рдХрд╣рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдпрджреНрдпрдкрд┐ рдЗрд╕ рд▓реЗрдЦ рдХрд╛ рдХрд╛рд░реНрдпрдХреНрд░рдо C ++ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЪреВрдВрдХрд┐ COM рдЗрдВрдЯрд░рдлреЗрд╕ рдореЗрдВ C- рд╕рдВрдЧрдд ABI рд╣реИ, рдЖрдк рдЙрдирдХреЗ рд╕рд╛рде рдХрд┐рд╕реА рднреА рднрд╛рд╖рд╛ рд╕реЗ рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдореВрд▓ рдХреЛрдб рдХреЗ рд╕рд╛рде, рд╕реАрдзреЗ рдпрд╛ рдПрдлрдПрдлрдЖрдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд╛рдо рдХрд░ рд╕рдХрддреА рд╣реИред MSVC ++ рдФрд░ .NET рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ MS, рдХреНрд░рдорд╢рдГ COM рдХреЛ C ++ рдФрд░ .NET рдСрдмреНрдЬреЗрдХреНрдЯ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдПрдХреАрдХреГрдд рдХрд░рддрд╛ рд╣реИред

Interfaces Direct3D 10 рдФрд░ 11 рдХреЛ рдХрдИ рдкреНрд░рдХрд╛рд░реЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

рдбреАрдПрдХреНрд╕рдЬреАрдЖрдИ рдЗрдВрдЯрд░рдлреЗрд╕ред рдбреАрдПрдХреНрд╕рдЬреАрдЖрдИ рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рдПрдкреАрдЖрдИ рд╣реИ рдЬрд┐рд╕ рдкрд░ рд╡рд┐рдВрдбреЛрдЬ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рд╕рдмрд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рднреА рдирдП рдШрдЯрдХ рдЖрдзрд╛рд░рд┐рдд рд╣реЛрддреЗ рд╣реИрдВред рдбреА 3 рдбреА рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ IDXGISwapChain рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ - рдпрд╣ рдмрдлрд╝рд░реНрд╕ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЛ рдЕрддрд┐рдХреНрд░рдордг рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдЦреАрдВрдЪрддрд╛ рд╣реИ, рдФрд░ рдЙрдиреНрд╣реЗрдВ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ winapi рд╡рд┐рдВрдбреЛ (HWND) рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред рдпрджреНрдпрдкрд┐ рдЗрд╕ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ (рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ "рд╡рд┐рдВрдбреЛ рдХреЛ рд░реЗрдВрдбрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП" - рд╣рдо рдПрдХ рдмрдирд╛рд╡рдЯ рдореЗрдВ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рдЬреАрдбреАрдЖрдИ рдореЗрдВ рдПрдЪрдбреАрд╕реА рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ), рдпрд╣ рдЕрдХреНрд╕рд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред

рд╡рд░реНрдЪреБрдЕрд▓ рдПрдбреЗрдкреНрдЯрд░ рдЗрдВрдЯрд░рдлреЗрд╕ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд┐рднрд┐рдиреНрди рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдмрдирд╛рдиреЗ, рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдФрд░ рдЗрд╕реЗ рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред D3D10 рдореЗрдВ, рд╕рднреА рдХреЗ рд▓рд┐рдП рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдЬрд┐рдореНрдореЗрджрд╛рд░ рдерд╛, ID3D10Device (рдпрд╛ ID3D10Device1 , D3D10.1 рдХреЗ рд▓рд┐рдПред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, D3D рдФрд░ DXGI рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рдирд╛рдордХрд░рдг рдореЗрдВ, рдЙрдкрд╕рд░реНрдЧ "I" рдирд╛рдо рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдкреНрд░рдХрд╛рд░ рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ, "DXGI" рдпрд╛ "рдЙрдкрд╕рд░реНрдЧ"ред рдбреА 3 рдбреА 11 "рдХрд╛ рдЕрд░реНрде рд╣реИ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдПрдкреАрдЖрдИ, рдФрд░ рдкреНрд░рддреНрдпрдп, рдпрджрд┐ рдХреЛрдИ рд╣реЛ, рддреЛ рдПрдкреАрдЖрдИ рдХреЗ рдПрдХ рдорд╛рдореВрд▓реА рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ), рдбреА 3 рдбреА 11 рдореЗрдВ рдЗрд╕реЗ рджреЛ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ - рдЖрдИрдбреА 3 рдбреА 11 рдбреЗрд╡рд┐рд╕ (рд╕рдВрд╕рд╛рдзрди рдмрдирд╛рдирд╛), рдФрд░ рдЖрдИрдбреА 3 рдбреА 11 рдбреЗрд╡рд╛рдЗрд╕рд┐рдЯреЛрдиреЗрдХреНрд╕реНрдЯ (рд╢реЗрд╖ рджреЛ рдХрд╛рд░реНрдп)ред
рдСрдмреНрдЬреЗрдХреНрдЯ рдЬреЛ рдЗрди рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ, рд╡реЗ рдХреБрдЫ DXGI рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЛ рднреА рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ - рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдо ID3D11Device рд╕реЗ IDXGIDevice рдЗрдВрдЯрд░рдлрд╝реЗрд╕ ( QueryInterface рд╡рд┐рдзрд┐ (рдЬрд┐рд╕реЗ IUnogn рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ IUnaware рд╕реЗ IUnaware рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИ) рдореЗрдВ рдХреЙрд▓ рдХрд░рдХреЗ рдЕрдиреБрд░реЛрдз рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ)ред

рдпрд╣рд╛рдВ рдпрд╣ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдирд╡реАрдирддрдо рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЬрд┐рд╕ рдкрд░ рд╣рдорд╛рд░рд╛ рдХрд╛рд░реНрдпрдХреНрд░рдо рдЗрд╕ рдПрдкреАрдЖрдИ рдХрд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкрд╛рд▓рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░реЗрдЧрд╛ред Microsoft рдиреЗ "рдлреАрдЪрд░ рд▓реЗрд╡рд▓" рдХреЙрдиреНрд╕реЗрдкреНрдЯ рдХреЛ D3D10.1 рдореЗрдВ рдкреЗрд╢ рдХрд┐рдпрд╛, рдЬреЛ рдПрдкреАрдЖрдИ рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбреА 3 рдбреА 9 рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдкрд░ рднреА рдЪрд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ (рдЬрдм рддрдХ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдПрдкреАрдЖрдИ рд╕реЗ рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдлреАрдЪрд░ рд╕реНрддрд░ рддрдХ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рди рд╣реЛ, рдЬреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИрдВ)ред рдореЗрд░реЗ рджреГрд╢реНрдп рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореИрдВ D3D11 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реВрдВрдЧрд╛, рд▓реЗрдХрд┐рди рдореИрдВ D3D_FEATURE_LEVEL_10_0 рдзреНрд╡рдЬ рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд░реНрдЪреБрдЕрд▓ рдПрдбреЗрдкреНрдЯрд░ рдмрдирд╛рдКрдВрдЧрд╛, рдФрд░ рдХреНрд░рдорд╢рдГ 4 рд╡реЗрдВ рдореЙрдбрд▓ рдХреЗ рд╢реЗрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реВрдВрдЧрд╛ред

рд╣реЗрд▓реНрдкрд░ рдЗрдВрдЯрд░рдлреЗрд╕ред рдЬреИрд╕реЗ рдХрд┐ ID3D11Debug , ID3D11InfoQueue , ID3D11Counter рдпрд╛ ID3D11ShaderReflection - рдХрд╛ рдЙрдкрдпреЛрдЧ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдкреНрд░рджрд░реНрд╢рдиреЛрдВ рдХреЛ рдорд╛рдкрдиреЗ рдХреЗ рд▓рд┐рдП, рдФрд░ рдЗрд╕ рддрд░рд╣ рдХреЗ рдЕрдиреНрдпред

рд╕рдВрд╕рд╛рдзрди рдЗрдВрдЯрд░рдлреЗрд╕ рдбреА 3 рдбреА рдореЗрдВ, рдПрдХ рд╕рдВрд╕рд╛рдзрди рдПрдХ рдмрдирд╛рд╡рдЯ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, ID3D11Texture2D - рдПрдХ рджреЛ-рдЖрдпрд╛рдореА рдмрдирд╛рд╡рдЯ) рдпрд╛ рд╕рд┐рд░реНрдл рдПрдХ рдмрдлрд░ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╡рд░реНрдЯреЗрдХреНрд╕ рдбреЗрдЯрд╛) рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИред рд╕рдВрд╕рд╛рдзрди рдСрдмреНрдЬреЗрдХреНрдЯ рднреА рд╡рд┐рднрд┐рдиреНрди DXGI рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ IDXGIResource , рдФрд░ рдпрд╣ рд╡рд┐рднрд┐рдиреНрди рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рд╕рдмрд╕рд┐рд╕реНрдЯрдо (рдЬреИрд╕реЗ Direct2D, GDI) рдФрд░ рдПрдХ рд╣реА рд╕рдмрд╕рд┐рд╕реНрдЯрдо рдХреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ (D3D9, 10 рдФрд░ 11) рдХреЗ рдмреАрдЪ, рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рдЕрдВрддрд░ рдХрд░рдиреЗ рдХреА рдХреБрдВрдЬреА рд╣реИред

рдЕрдВрддрд░ рджреЗрдЦреЗрдВред рд╣рдо рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрд╕рд╛рдзрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рд╕рдВрднрд╡рддрдГ рдПрдХ рд╕рд╛рде рднреАред рдбреА 3 рдбреА рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ, рд╣рдо рд╕реАрдзреЗ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдХреЛ рдмрдирд╛рд╡рдЯ рдФрд░ рдмрдлрд░ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреА рдЖрдкреВрд░реНрддрд┐ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ (рд╡рд░реНрдЯреЗрдХреНрд╕, рдЗрдВрдбреЗрдХреНрд╕ рдФрд░ рдирд┐рд░рдВрддрд░ рдмрдлрд╝рд░реНрд╕ рдХреЛ рдЫреЛрдбрд╝рдХрд░), рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рд╣рдо рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рддреЗ рд╣реИрдВ рдЬреЛ рдкреНрд░реЗрдЬреЗрдВрдЯреЗрд╢рди рдЗрдВрдЯрд░рдлреЗрд╕ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдХреЛ рдЖрдкреВрд░реНрддрд┐ рдХрд░рддрд╛ рд╣реИред
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреНрд░рдХрд╛рд░ рдХреЗ рджреГрд╢реНрдп рдЗрдВрдЯрд░рдлреЗрд╕ рдбреА 3 рдбреА 11 рдореЗрдВ рдореМрдЬреВрдж рд╣реИрдВ:

рд╢реЗрдбрд░ рдЗрдВрдЯрд░рдлреЗрд╕ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, ID3D11VertexShader ред рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдХреЗ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╕реНрдЯреЗрдЬ рдХреЗ рд▓рд┐рдП shader рдХреЛрдб рдХреЛ рдЗрдирдХреИрдкреНрд╕реБрд▓реЗрдЯ рдХрд░реЗрдВ, рдФрд░ рдЗрд╕ рдЪрд░рдг рдХреЗ рд▓рд┐рдП shader рдХреЛ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдПрдХ рд░рд╛рдЬреНрдп рдХреЗ рдЗрдВрдЯрд░рдлреЗрд╕ (рдЕрдВрдЧреНрд░реЗрдЬреА рд░рд╛рдЬреНрдп )ред рд╡рд┐рднрд┐рдиреНрди рдЧреИрд░-рдкреНрд░реЛрдЧреНрд░рд╛рдореЗрдмрд▓ рдХрдиреНрд╡реЗрдпрд░ рдЪрд░рдгреЛрдВ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг ID3D11RasterizerState ( рд░реИрд╕реНрдЯрд░рдПрдЬрд╝рд░ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддрд╛ рд╣реИ), ID3D11InputLayout (рдЗрдирдкреБрдЯ рдЕрд╕реЗрдВрдмрд▓рд░ рдореЗрдВ рд╡рд░реНрдЯреЗрдХреНрд╕ рдмрдлрд╝рд░реНрд╕ рд╕реЗ рд╡рд┐рддрд░рд┐рдд рд╡рд░реНрдЯрд┐рдХрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ), ID3D11BlustState (рдЖрдЙрдЯрдкреБрдЯ рдорд░реНрдЬрд░ рдореЗрдВ рдХрд▓рд░ рдорд┐рдХреНрд╕рд┐рдВрдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддрд╛ рд╣реИ)ред

рдкреНрд░реЛрдЧреНрд░рд╛рдо, рдЬреЛ рдмрд╣реБрдд рд╢реБрд░реБрдЖрдд рдореЗрдВ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рджреГрд╢реНрдп рдХреЛ рдЦреАрдВрдЪрддрд╛ рд╣реИ, рдХреЛ рд▓реЗрдЦ рдХреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рднрд╛рдЧреЛрдВ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЕрд░реНрдерд╛рддреН, рджреВрд╕рд░реЗ рднрд╛рдЧ рдореЗрдВ рдореИрдВ рдЖрднрд╛рд╕реА рдПрдбрд╛рдкреНрдЯрд░ рдФрд░ рджреГрд╢реНрдп рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдмрдирд╛рдиреЗ рдФрд░ рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд░реНрдгрди рдХрд░реВрдВрдЧрд╛, рдФрд░ рддреАрд╕рд░рд╛ рднрд╛рдЧ рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╢реЗрдбреНрд╕ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдкрд┐рдд рд╣реЛрдЧрд╛ред ред

рдкреВрд░рд╛ рд▓рд┐рдВрдХ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд▓рд┐рдВрдХ рдкрд░ github рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИ: github.com/Lovesan/Reef

Source: https://habr.com/ru/post/In129166/


All Articles