POPPUR爱换

 找回密码
 注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

搜索
楼主: webguest
打印 上一主题 下一主题

是不是微软WINDOWS系统真的不适合做游戏平台(求科普)

[复制链接]
超频疯子 该用户已被删除
61#
发表于 2012-4-7 13:48 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

头像被屏蔽
62#
发表于 2012-4-7 13:49 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

头像被屏蔽
63#
发表于 2012-4-7 13:51 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

64#
发表于 2012-4-7 13:54 | 只看该作者
主要是游戏机游戏是针对游戏机硬件量身打造的,执行效率很高,假如专门为推土机处理器写一个操作系统,那推土机处理器也不可能是现在这种表现,就像超级计算机软件都是自己写的代码,一个道理,你看着吧,新一代游戏机画面绝对超越目前所有dx11游戏
回复 支持 反对

使用道具 举报

65#
发表于 2012-4-7 18:41 | 只看该作者
你可以看看,NV,AMD每次拿出来的DEMO是不是都非常华丽?但是实际游戏想做到那个效果非常困难
回复 支持 反对

使用道具 举报

66#
发表于 2012-4-7 21:39 | 只看该作者
66666 发表于 2012-4-7 09:18
PS3和XO没有一个游戏是真正直接利用汇编操作GPU。没有openGL es和DX中间层你游戏机一个游戏都玩不了。就是 ...

XO360的DX没有硬件抽象层这东西
回复 支持 反对

使用道具 举报

67#
发表于 2012-4-7 22:35 | 只看该作者
超频疯子 发表于 2012-4-7 05:48
求主机上玩全面战争系列、星际系列、帝国系列……高清视频~~~~~~

红警,冲突世界,命令与征服,光环战争,最高指挥官,兵者诡道,终结战争,文明,战锤 这几个360版我都有印象...好不好玩另说
回复 支持 反对

使用道具 举报

68#
发表于 2012-4-7 23:34 | 只看该作者
bugbear 发表于 2012-4-5 22:02
就是优化的问题

主机硬件固定,好优化。

鬼泣4的PC画质至少可以调节到最爽的画质,但是主机画质不能调节,而且近看就很难看了。就成了那句“可远观而不可亵玩也”。
回复 支持 反对

使用道具 举报

69#
发表于 2012-4-8 01:19 | 只看该作者
frankincense 发表于 2012-4-6 11:25
优化很重要,好的优化可以让效率番倍
主机硬件单一,优化有重点,可以花精力充分挖掘硬件潜力;PC硬件千百 ...

你所谓的优化是指
将2048x2048的贴图缩成256x256,
将模型的5级LOD降成最低的那两级,
将植被和物品的可视范围降低到25%,
将影响角色的光源从4个减少到1个,
将阴影的分辨率从4096降低到可耻的128狗牙级吗?
还是指,
将HDR换成glare,
将cubemap换成sphere map,
将transparent换成punch through,
将Dynamic Physics换成Static animation,
将Anisotropic Filtering 换成Trilinear Filtering?
回复 支持 反对

使用道具 举报

70#
发表于 2012-4-8 12:40 | 只看该作者
66666 发表于 2012-4-7 09:18
PS3和XO没有一个游戏是真正直接利用汇编操作GPU。没有openGL es和DX中间层你游戏机一个游戏都玩不了。就是 ...

6神,关于编程的事情呢,你就认输吧。我本科时代的毕业设计就是3D游戏。

如同开发java程序一样,对于程序的大部分代码,开发人员会直接使用java虚拟机开发;而对于性能敏感部分特别是电脑游戏会采用JNI扩展用二进制执行,这样就失去了跨平台能力;而对于性能极为敏感部分JNI中也可以嵌套ASM来进行SIMD优化。

OpenGL分LLSL和GLSL两部分。一个游戏的90%代码都会采用GLSL这种高级语言编写,这样可以保证开发质量与速度。高级着色器语言所编写的代码会交给shader虚拟机运行,理论上讲用GLSL编译器编译出来的程序在A/N卡上没多大性能区别。

但是在性能敏感领域还是要用到vertex program以及fragment program这样的LLSL来优化性能的。这就是为什么有些游戏在不同的显卡上性能差异很大。

在更为敏感领域会调用ASM代码,直接最优化性能。但是由于ASM代码可维护性与跨平台性极差(极可能换块显卡不能用),所以这种程序在PC领域极为少见。
回复 支持 反对

使用道具 举报

71#
发表于 2012-4-8 18:00 | 只看该作者
本帖最后由 66666 于 2012-4-8 18:13 编辑
Vendicare 发表于 2012-4-8 12:40
6神,关于编程的事情呢,你就认输吧。我本科时代的毕业设计就是3D游戏。

如同开发java程序一样,对于程 ...

你扯了这么多请告诉我跟你所谓XO/PS3使用汇编写游戏关系在哪?

哪个XO/SP3游戏实例用到汇编语言?

B3D上从未有开发者谈到过关于PS3/XO汇编的问题,XO/PS3时代90%都是跨平台,在多平台时代用汇编绕过API写游戏更是胡扯蛋
回复 支持 反对

使用道具 举报

72#
发表于 2012-4-8 18:34 | 只看该作者
66666 发表于 2012-4-8 18:00
你扯了这么多请告诉我跟你所谓XO/PS3使用汇编写游戏关系在哪?

哪个XO/SP3游戏实例用到汇编语言?

他的意思是底层的Shader Language=汇编。我觉得这两个也就是相而已,实际还是不一样的。更何况现在对于底层接口的封装和自动优化越来越好,写最原始的Shader的机会也少了。
回复 支持 反对

使用道具 举报

73#
发表于 2012-4-8 20:38 | 只看该作者
简单来说,PC端无论是游戏还是操作系统要考虑硬件兼容性,驱动兼容性,软件兼容性,可升级性等等,所以为了妥协,在资源利用率上,远不如主机。
另外,主机的硬件都是定制的,往往没有多余的功能,所有的晶体管都是为了游戏运算做服务。所以,相同规模的晶体管数量下,实际游戏性能是比桌面平台的硬件高一些的。
回复 支持 反对

使用道具 举报

74#
发表于 2012-4-8 22:57 | 只看该作者
本帖最后由 Vendicare 于 2012-4-8 23:01 编辑
66666 发表于 2012-4-7 09:18
PS3和XO没有一个游戏是真正直接利用汇编操作GPU。没有openGL es和DX中间层你游戏机一个游戏都玩不了。就是 ...

你是一行代码都没写过吧?现代计算机程序里没什么软件是全用ASM写的,也没几个游戏不用ASM。全用ASM程序没有可维护性,几十k的程序过几年开发者自己都看不明白了。完全不用asm写效率偏低,用户体验不很好。截至目前完全没用ASM的ps3游戏估计还没出来,完全用asm写就的ps2游戏也不存在。

不管是SSE还是SPU这些SIMD系统都没法靠编译器自动优化(自动优化性能提升几乎可以忽略)。除非有能够自动理解上下文语义的超级编译器出现,否则ASM永远都是编写程序中性能敏感部分的主要工具之一。

用全SPE性能的代码示例(要是什么东西都能用C++解决,程序员就不这么苦逼了):
.data

#This is the struct we will copy from the main PPE process
.align 4
conversion_info:
conversion_length:
        .octa 0
conversion_data:
        .octa 0
.equ CONVERSION_STRUCT_SIZE, 32

.section .bss #Uninitialized Data Section

#This is the buffer we will store the string in
.align 4
.lcomm conversion_buffer, 16384

.text

#MFC Constants
.equ MFC_GET_CMD, 0x40
.equ MFC_PUT_CMD, 0x20

.equ LR_OFFSET, 16

.global main
.type main, @function
.equ MAIN_FRAME_SIZE, 32
main:
        #Prologue
        stqd $lr, LR_OFFSET($sp)
        stqd $sp, -MAIN_FRAME_SIZE($sp)
        ai $sp, $sp, -MAIN_FRAME_SIZE

        ##COPY IN CONVERSION INFORMATION##
        ila $3, conversion_info         #Local Store Address
        #register 4 already has address #64-bit Effective Address
        il $5, CONVERSION_STRUCT_SIZE   #Transfer size
        il $6, 0                        #DMA Tag
        il $7, MFC_GET_CMD              #DMA Command
        brsl $lr, perform_dma

        #Wait for DMA to complete
        il $3, 0
        brsl $lr, wait_for_dma_completion

        ##COPY STRING IN TO BUFFER##
        #Load buffer data pointer
        ila $3, conversion_buffer #Local Store
        lqr $4, conversion_data   #64-bit Effective Address
        lqr $5, conversion_length #SIZE
        il $6, 0                  #DMA Tag
        il $7, MFC_GET_CMD        #DMA Command
        brsl $lr, perform_dma

        #Wait for DMA to complete
        il $3, 0
        brsl $lr, wait_for_dma_completion

        ##PERFORM CONVERSION##
        ila $3, conversion_buffer
        lqr $4, conversion_length
        brsl $lr, convert_buffer_to_upper

        ##COPY DATA BACK##
        ila $3, conversion_buffer   #Local Store Address
        lqr $4, conversion_data     #64-bit effective address
        lqr $5, conversion_length   #Size
        il $6, 0                    #DMA Tag
        il $7, MFC_PUT_CMD          #DMA Command
        brsl $lr, perform_dma

        #Wait for DMA to complete
        il $3, 0
        brsl $lr, wait_for_dma_completion

        ##EXIT PROGRAM##
        #Return Value
        il $3, 0

        #Epilogue
        ai $sp, $sp, MAIN_FRAME_SIZE
        lqd $lr, LR_OFFSET($sp)
        bi $lr
回复 支持 反对

使用道具 举报

75#
发表于 2012-4-8 23:10 | 只看该作者
nom8393 发表于 2012-4-8 18:34
他的意思是底层的Shader Language=汇编。我觉得这两个也就是相而已,实际还是不一样的。更何况现在对于底 ...

LLSL本来就有汇编功能,就如最常用的汇编程序其实是C++。
回复 支持 反对

使用道具 举报

76#
发表于 2012-4-9 07:18 | 只看该作者
Vendicare 发表于 2012-4-8 22:57
你是一行代码都没写过吧?现代计算机程序里没什么软件是全用ASM写的,也没几个游戏不用ASM。全用ASM程序没 ...

好笑,你看清楚我说的话吗?

XO/PS3上面有哪个游戏用汇编绕过API直接控制GPU硬件?

回复 支持 反对

使用道具 举报

77#
发表于 2012-4-9 08:20 | 只看该作者
nom8393 发表于 2012-4-8 18:34
他的意思是底层的Shader Language=汇编。我觉得这两个也就是相而已,实际还是不一样的。更何况现在对于底 ...

无论什么形式编写的shader代码都会受到API限制,即使你用7970/680在XP系统上使用DirectX shader Model4.0格式shader代码一样也用不了,不管你是HLSL,CG还是ASM。

把这种形式跟汇编等同简直胡扯。
回复 支持 反对

使用道具 举报

78#
发表于 2012-4-9 09:26 | 只看该作者
本帖最后由 Vendicare 于 2012-4-9 13:45 编辑
66666 发表于 2012-4-9 07:18
好笑,你看清楚我说的话吗?

XO/PS3上面有哪个游戏用汇编绕过API直接控制GPU硬件?

你以为PS3 SDK中的libgcm库里那些直接调用command buffer的函数是干吗用的?

写了这么多根本是你没看我说话:ASM代码几乎在所有PS3游戏中存在,游戏机开发商比PC游戏开发商更愿意使用ASM(无论是对CPU还是对显卡)。
回复 支持 反对

使用道具 举报

79#
发表于 2012-4-9 09:35 | 只看该作者
66666 发表于 2012-4-9 08:20
无论什么形式编写的shader代码都会受到API限制,即使你用7970/680在XP系统上使用DirectX shader Model4.0 ...

http://msdn.microsoft.com/en-us/library/windows/hardware/ff552841(v=vs.85).aspx

微软桑心不已..................
回复 支持 反对

使用道具 举报

80#
发表于 2012-4-9 16:34 | 只看该作者
这图全靠美工也能做到啊,FM4的截图随便拿一张出来都有这画质,实际画面根本达不到。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

广告投放或合作|网站地图|处罚通告|

GMT+8, 2025-8-25 14:45

Powered by Discuz! X3.4

© 2001-2017 POPPUR.

快速回复 返回顶部 返回列表