http://blog.sina.com.cn/s/blog_6e521a600100q4dr.html

DX9还是能支持到固定管线的,虽然说是在内部被转换成shader;

DX10明确不再支持固定管线了,也就是在API上已经没有一些固定管线的接口;
DX11也已经出来好久了,只不过amazon上到现在也没有相关的书籍介绍;
以后的PC engine,固定管线是不用考虑了,不会回到过去。当然,如果准备的是有手机版之类的,还是有用的。
Shader Model 和 DirectX 的关系:
DirectX 8.0 - Shader Model 1.0 & 1.1
DirectX 8.0a - Shader Model 1.3
DirectX 8.1 - Shader Model 1.4
DirectX 9.0 - Shader Model 2.0
DirectX 9.0a - Shader Model 2.0a
DirectX 9.0b - Shader Model 2.0b
DirectX 9.0c - Shader Model 3.0
DirectX 10.0* - Shader Model 4.0
DirectX 10.1* - Shader Model 4.1
DirectX 11.0* - Shader Model 5.0
*DirectX 10.0 and higher will not run in Windows XP
ShaderX serials是wolfgang的一系列书:
ShaderX1 到 ShaderX6都是基于shader model 3.0和2.0的。
ShaderX7 中有章节基于Shader model 4.0。
对应于各个版本的asm指令和各个寄存器,微软的MSDN有相关的文档:
http://msdn.microsoft.com/en-us/library/bb172930(v=vs.85).aspx (如失效,请用vs_3_0做关键字google)

vs_3_0

0 out of 3 rated this helpful - Rate this topic

A programmable vertex shader is made up of a set of instructions that operate on vertex data. Registers transfer data in and out of the ALU. Additional control can be applied to modify the instruction, the results, or what data gets written out.

Vertex shader version vs_3_0 extends the feature set supported by vs_2_x. Each of the features in vs_2_X that requires a cap to be set, is available in vs_3_0 without requiring the cap.

  • Instructions - vs_3_0 contains a list of the available instructions.
  • Registers - vs_3_0 lists the different types of registers used by the vertex shader ALU.
  • Vertex Shader Register Modifiers are used to modify the way an instruction works.
  • Vertex Shader Source Register Modifiers alter the source register data before the instruction runs.
  • Source Register Swizzling gives additional control over which register components are read, copied, or written.
  • Destination Register Masking determines what components of the destination register get written.

New Features

New features of vertex shader version vs_3_0 are listed in the following sections.

Indexing Registers

In the earlier shader models, only the constant register bank could be indexed. In this model, the following register banks can be indexed, using the loop counter register (aL):

  • Input register (v#)
  • Output register (o#)

Vertex Textures

This shader model supports texture lookup in the vertex shader using texldl. The vertex engine has four texture sampler stages (distinct from the displacement map sampler and the texture samplers in the pixel engine) that can be used to sample textures set at those stages. See Vertex Textures in vs_3_0 (DirectX HLSL).

Vertex Stream Frequency

This feature allows a subset of the input registers to be initialized at a rate different from once per vertex. See Drawing Non-Indexed Geometry.

Shader Output

Similar to vs_2_0, the output of the shader can vary with static flow control. Be careful with dynamic branching as this can cause shader outputs to vary per vertex. This will produce unpredictable results on different hardware.

Dynamic flow control

All dynamic flow control instructions are supported. The maximum nesting depth value allowed is 24. (See Flow Control Nesting Limits for details.)

Temporary Registers

A total of 32 temporary registers (r#) is supported.

Static Flow Control

The maximum nesting depth for loop - vs/rep - vs is 4. The maximum nesting depth for call - vs/callnz bool - vs/callnz pred - vs is 4. For if bool - vs, the maximum nesting depth value allowed is 24. (See Flow Control Nesting Limits for details.)

Predication

Instruction predication is supported. Use setp_comp - vs to set the predicate register.

Instruction Count

Each vertex shader is allowed anywhere from 512 up to the number of slots in MaxVertexShader30InstructionSlots in D3DCAPS9. The number of instructions run can be much higher because of the loop/rep support; however, this is capped by MaxVShaderInstructionsExecuted in D3DCAPS9 which should be at least 0xFFFF.

Device Caps

If Vertex Shader 3_0 is supported, the following caps are supported in hardware (at a minimum):

Cap Capability
Shader caps
  • DynamicFlowControlDepth is 24
  • NumTemps is 32
  • StaticFlowControlDepth is 4
  • Predication is supported.
GuardBandLeft, GuardBandTop, GuardBandRight, GuardBandBottom 8K
VertexShaderVersion 3_0
MaxVertexShaderConst 256
MaxVertexShader30InstructionSlots 512
Fog support D3DPRASTERCAPS_FOGVERTEX
VertexTextureFilterCaps
  • D3DPTFILTERCAPS_MINFPOINT
  • D3DPTFILTERCAPS_MAGFPOINT
D3DDEVCAPS2_VERTEXELEMENTSCANSHARESTREAMOFFSET Vertex elements in a vertex declaration can share the same stream offset.
Vertex formats
  • D3DDECLTYPE_UBYTE4
  • D3DDECLTYPE_UBYTE4N
  • D3DDECLTYPE_SHORT2N
  • D3DDECLTYPE_SHORT4N
  • D3DDECLTYPE_FLOAT16_2
  • D3DDECLTYPE_FLOAT16_4

转载于:https://www.cnblogs.com/kylegui/p/3843799.html

Shader Model 版本与DirectX的关系(OpenGL对应的呢?)相关推荐

  1. Ubuntu系统python3.6版本,networkx画关系图显示中文处理

    先参考这篇文章: Ubuntu系统python3.6版本,networkx画关系图显示中文处理_u013617229的博客-CSDN博客 Ubuntu系统python3.6版本,networkx画关系 ...

  2. TLS协议与JDK版本之间微妙的关系

    TLS协议与JDK版本之间微妙的关系 首先想知道TLS协议与JDK版本之间微妙的关系,就必须知道什么是TLS协议? 维基百科是这样说的: 传输层安全性协定(英语:Transport Layer Sec ...

  3. (二)unity shader基础之——————shader一些专业术语的解释(OpenGL/DirectX、HLSL/GLSL/Cg、Draw Call、固定管线渲染等)

    一.什么是OpenGL/DirectX 我们直接访问GPU是一件非常麻烦的事情,可能需要各自寄存器.显存打交道而图像编程接口在这些硬件的基础上实现了一层抽象. OpenGL和DirectX就是这些图像 ...

  4. Django ORM – 多表实例:Django模型Model的定义+模型间关系

    Django 对各种数据库提供了很好的支持,包括:PostgreSQL.MySQL.SQLite.Oracle. Django 为这些数据库提供了统一的调用API. 我们可以根据自己业务需求选择不同的 ...

  5. 【django轻量级框架】View与Model交互(模块的交互关系)

    文章目录 1 总体结构 2 各个模块的交互关系 3 Model 4 View 5 ORM语句 1 总体结构 Django是MTV结构,即:Model, Template, View Model:定义数 ...

  6. Unity URP的四种shader model

    https://docs.unity3d.com/Packages/com.unity.render-pipelines.universal@10.3/manual/shading-model.htm ...

  7. linux 查看opengl版本,什么是可以显示OpenGL版本的终端命令?

    问题描述 所以我想知道哪一个是我的OpenGL版本.我可以通过SSH访问Ubuntu.我应该执行哪个命令? 最佳解决办法 检查OpenGL版本, glxinfo | grep "OpenGL ...

  8. 2017年第1贴:EXT.JS使用MVC模式时,注意如何协调MODEL, STORE,VIEW,CONTROLLER的关系

    也调了快一天,死活找不到窍门. MODEL, STORE,VIEW的调置测试了很久,试了N种方法,不得其果. 最后,试着在APPLICATION里加入CONTROLLER, 在CONTROLLER里加 ...

  9. ChromeDriver版本(最新v2.46)与Chrome版本(最新v73)支持关系

    ChromeDriver版本与支持的Chrome版本最新对应关系 下载地址:https://chromedriver.storage.googleapis.com/index.html ChromeD ...

最新文章

  1. 成功解决xlrd.biffh.XLRDError: Unsupported format, or corrupt file: Expected BOF record; found b‘Debug is
  2. 在 ActiveReports 中嵌入 Spread 控件
  3. 开源开放 | 熵简科技 AI Lab 开源金融领域中文预训练语言模型 FinBERT
  4. python函数手册中文_Python中文手册-Python函数
  5. MyBatis整合Spring原理分析
  6. HTTP请求属性说明
  7. python傅里叶变换库_python的numpy库和cv2库实现图像傅里叶变换
  8. 使用SPA/GPA 参数--SAP内存参数设置SET /GET PARAMTER ID
  9. UINavigationController 直接pop到指定controllerView的方法
  10. 庖丁解牛之spring源码系列一
  11. 今日头条关键词文章热度和搜索指数的查询方法分享
  12. 申请美国大学计算机专业,美国TOP20大学计算机专业申请建议
  13. android网络权限动态,Android权限详解(含6.0动态申请)
  14. 电源纹波和电源噪声有什么区别?
  15. Keil MDK介绍
  16. 练习:排序数组中查找元素的第一个和最后一个位置
  17. js-禁止微信内置浏览器调整字体大小
  18. 瞰见|迷失的开源乌托邦
  19. 游戏人物第三人称操控及视角转变
  20. dnf电脑服务器不稳定怎么办,电脑玩DNF经常卡顿是怎么回事?5步让你从此告别卡顿...

热门文章

  1. koa 的 Context
  2. oracle常用小知识点
  3. 一致性哈希算法及其应用
  4. Android wifi carlife,carlife可以无线连接吗?carlife蓝牙连接流程
  5. Webpack 4.X 从入门到精通 - 第三方库(六)
  6. Node.js 线程你理解的可能是错的 1
  7. oracle快速创建可用用户
  8. 《Linux命令行与shell脚本编程大全》第十二章 使用结构化命令
  9. 拼多多前端岗位笔试试题 问答题部分 2017/8/1
  10. 微信公众号开发之微信买单