百科问答小站 logo
百科问答小站 font logo



Sony和Nintendo系游戏主机的软件开发基于什么图形库? 第1页

  

user avatar   Hypothetical 网友的相关建议: 
      

PS4 的图形 API 分两种,自有标准的 GNM 和 GNMX,前者更为接近底层,类似 Vulkan 和 DX 12,能够更为充分的调动硬件机能,同时也意味着开发难度更大;后者层级较高,开发效率上较 GNM 有一定优势,当然表现在实际执行效率上可能逊于 GNM。这也可以解释为何 Sony 本社开发的游戏在利用硬件平台机能上有一定优势:因为愿意花费大量的时间、人工和开支。

前面提到类似 Vulkan/DX 12 指的是 API 接近硬件底层,实际上 GNM/GNMX 结合了 DX 11.4+/OpenGL 4.4 以及 SCE 自行开发的部分指令集扩展。

Shading Language 则是 PSSL,以及配合 CPU 部分使用的 C++11 CPU Compiler 。PSSL 支持较新的 Vertex 与 Pixel Shaders、Geometry Shaders、HS DS Tessellatio、Modern Compute Shaders。遵循 PC 平台 ANSI C style syntax,支持向量、标准库、C++ Style Structs with Members、Static and Dynamic Control Flow。此外还有 SCE 自己提供的各种系统库和开发套件负责解码、输入输出、网络等方面。SDK 以 LLVM 和 Clang 为基础。

2013 年的开发文档预览里给出了 Vertex Shaders 的示例:

       struct VS_INPUT {     float3 Position     float3 Normal     float4 Tangent     float2 TextureUV : POSITION;    : NORMAL; : TEXCOORD0; : TEXCOORD1;  };  VS_OUTPUT main( VS_INPUT input ) {     VS_OUTPUT Output;     Output.Position = mul( float4(input.Position.xyz,1), m_modelViewProjection );     ...     float3 vN = normalize(mul(float4(input.Normal,0), m_modelView).xyz);     ...     return Output; }      

以及 Pixel Shaders:

       SamplerState samp0 : register(s0);  Texture2D colorMap : register( t0 );  Texture2D bumpGlossMap : register( t1 );  float4 main( VS_OUTPUT In ) : S_TARGET_OUTPUT  {     ...     float4 diff_col = colorMap.Sample(samp0, In.TextureUV.xy);     float3 spec_col = 0.4*normalGloss.w+0.1;     ...     return float4(vLight.xyz, diff_col.a); }      

此外开发文档预览还指出 PS4 的开发支持 Visual Studio。

PS3 同样有两种 API:较低层级的 LibGCM 与特征接近 OpenGL 的 PSGL。PSGL 以 OpenGL ES 1.1 和部分 SCE 自有标准的指令集为基础构建。两种 API 均以 NVIDIA Cg 为 Shading Language。可能是较低的内存和显存容量所致,PS3 时代的开发人员更为青睐 LibGCM 以提高游戏运行效率。

PSGL 最早可追朔到 PS2 时代,不过没多少人用。

由于 PS 系列主机详细开发文档仅对注册开发者开放,以及 NDA 限制,详细内容无法得知。上述内容肯定与实际情况有相当的出入。所以如果觉得回答似乎言之有物的话就点击“感谢”而不是旁边向上的箭头以免误人子弟......吧?


参考资料:

ICE Team, AMD & Other Devs Discuss API's - Sony's LibGCM First Modern Low Level API?

PS3: Introduction to GCM

PlayStation Shading Language for PS4




  

相关话题

  在 Ubisoft 工作是什么样的感觉? 
  游戏捏脸作者有权禁止分享吗? 
  国行 Switch 存在的意义是什么? 
  有哪些毁掉一个游戏的败笔? 
  2020年买 switch 还是 ps4 ? 
  Xbox One 销量惨淡,美国人为什么不抵制日货、支持国货? 
  ipad Pro今后会可能成为对标ps5和Xbox的新一代移动端游戏机吗? 
  为何相比steam或PS4,Xbox等主机平台,王者荣耀,吃鸡等游戏在国内可以吸引到更多的玩家? 
  如何看待爆料称高通正在开发一款类似 Switch 的安卓掌机,市场前景如何? 
  微软Xbox One & 索尼PS 4 & 任天堂 游戏手柄你最钟爱的哪一款? 

前一个讨论
圣经记载的耶稣复活是纯属虚构还是真实事件改编加工?
下一个讨论
iPhone 的早期用户当年是怎么被诺基亚用户冷嘲热讽的?





© 2025-02-20 - tinynew.org. All Rights Reserved.
© 2025-02-20 - tinynew.org. 保留所有权利