3DMGAME 3DM首页 新闻中心 前瞻 | 评测 游戏库 热门 | 最新 攻略中心 攻略 | 秘籍 下载中心 游戏 | 汉化 购买正版 论坛

注册 登录

QQ登录

只需一步,快速开始

查看: 2675|回复: 20
打印 上一主题 下一主题

[讨论] 关于一种更好的抗锯齿方案

[复制链接]

5

主题

15

帖子

23

积分

新手玩家

Rank: 1

贡献度
0
金元
230
积分
23
精华
0
注册时间
2019-12-28
跳转到指定楼层
主题
发表于 2019-12-28 13:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这种方法也不会损耗多少性能,希望英伟达能采用这种方案啊

https://weibo.com/u/5497623214?refer_flag=1005055010_&is_all=1





回复

使用道具 举报

2682

主题

1万

帖子

3万

积分

游戏天王

Rank: 11Rank: 11Rank: 11Rank: 11

贡献度
4717
金元
128845
积分
31753
精华
0
注册时间
2006-10-22

游戏天王~

舒服的沙发
发表于 2019-12-28 15:27 | 只看该作者
不是让游戏变的更卡 才能把显卡卖的更贵吗 ?
回复 支持 反对

使用道具 举报

6

主题

4533

帖子

7250

积分

游戏精英

Rank: 8Rank: 8

贡献度
37
金元
71023
积分
7250
精华
0
注册时间
2008-7-3
硬硬的板凳
发表于 2019-12-28 15:35 | 只看该作者
这个是推广新产品的点子,我有新技术,可以提升画面质量,降低显卡消耗,你更新不更新? 行,买就对了。
回复 支持 反对

使用道具 举报

24

主题

866

帖子

3044

积分

游戏达人

Rank: 7Rank: 7Rank: 7

贡献度
20
金元
29639
积分
3044
精华
0
注册时间
2012-2-22
冰凉的地板
发表于 2019-12-28 15:51 | 只看该作者
这刚创建的小号是来钓鱼的吗/?都懒得回答你
回复 支持 反对

使用道具 举报

5

主题

15

帖子

23

积分

新手玩家

Rank: 1

贡献度
0
金元
230
积分
23
精华
0
注册时间
2019-12-28
5#
 楼主| 发表于 2019-12-28 16:41 | 只看该作者
本帖最后由 zasflower1984 于 2019-12-28 21:04 编辑

不,我的意思是这个是可以用驱动来搞定而不是换新一代显卡。

这个是个示意图。看树的边缘部分。反锯齿。

仅仅对边缘处理,理论上性能损失应该很低。















本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

2682

主题

1万

帖子

3万

积分

游戏天王

Rank: 11Rank: 11Rank: 11Rank: 11

贡献度
4717
金元
128845
积分
31753
精华
0
注册时间
2006-10-22

游戏天王~

6#
发表于 2019-12-28 18:33 | 只看该作者
本帖最后由 lchunghan 于 2019-12-28 18:36 编辑
zasflower1984 发表于 2019-12-28 16:41
不,我的意思是这个是可以用驱动来搞定而不是换新一代显卡。

这个是个示意图。看树的边缘部分。反锯齿。

阿尔法通道反锯齿, XP时代就提出过了。单问题是你要整合行业从TGA改成PNG。你有没有想过这种代价是什么?
要有 B,G,R,A 空间驱动才能做。问题是没有啊 !


回复 支持 反对

使用道具 举报

26

主题

424

帖子

525

积分

高级玩家

Rank: 4

贡献度
5
金元
5049
积分
525
精华
0
注册时间
2008-5-2
7#
发表于 2019-12-28 22:08 | 只看该作者
我在玩游戏时,注意不到这个,怎么办?
回复 支持 反对

使用道具 举报

5

主题

15

帖子

23

积分

新手玩家

Rank: 1

贡献度
0
金元
230
积分
23
精华
0
注册时间
2019-12-28
8#
 楼主| 发表于 2019-12-29 07:31 | 只看该作者
本帖最后由 zasflower1984 于 2019-12-29 07:59 编辑
lchunghan 发表于 2019-12-28 18:33
阿尔法通道反锯齿, XP时代就提出过了。单问题是你要整合行业从TGA改成PNG。你有没有想过这种代价是什么? ...

其实这个应该不一定要把tga改成png,Alpha只是一个两种颜色混合的计算方法。而这个alpha值是可以通过数学计算实时算出来的。

当然我也不会写显卡渲染驱动,不知道具体内部是什么情况,猜测。

假设是这样,比如对于光栅化三角形,首先,通过计算得出现在这个像素是处在三角形边缘的位置(有三角形的顶点坐标应该容易算出),通过数学算出它的Alpha值,然后把纹理的颜色和背景色用这个alpha值混合。混合完alpha值就可以扔了,临时用的。

应该是能实现的。当然我也不会写具体的程序。

我只是提出这个想法创意和理论上的思路。怎么实现估计英伟达AMD他们知道吧?

原理,思路和效果图有了。具体怎么实现呢,要看英伟达和AMD(这个我也不会)。

应该是个可行的方案。既然我用Photoshop随便画两下都可以做出来,显卡内部知道这么多数据计算能力又这么强应该能实现。


回复 支持 反对

使用道具 举报

2682

主题

1万

帖子

3万

积分

游戏天王

Rank: 11Rank: 11Rank: 11Rank: 11

贡献度
4717
金元
128845
积分
31753
精华
0
注册时间
2006-10-22

游戏天王~

9#
发表于 2019-12-29 13:50 | 只看该作者
本帖最后由 lchunghan 于 2019-12-29 14:00 编辑
zasflower1984 发表于 2019-12-29 07:31
其实这个应该不一定要把tga改成png,Alpha只是一个两种颜色混合的计算方法。而这个alpha值是可以通过数学 ...

问题是游戏开发商那边的素材你花钱帮忙转吗?Src*alpha+Dst*(1-alpha)需要用RGBA 四个分量来表示,这就牵扯到需要把素材统一在有RGBA规格上才有可能去做到。 你以为做老黄不想啊。

这就好比你用Photoshop可以做到,但是别人用sai2, Paint的。难道你花钱给其他所有人来一套Photoshop ?    在多嘴一句到现在还有人坚持用excel画图的你能叫他们换?(你现在会想Excel怎么画画?)
回复 支持 反对

使用道具 举报

5

主题

15

帖子

23

积分

新手玩家

Rank: 1

贡献度
0
金元
230
积分
23
精华
0
注册时间
2019-12-28
10#
 楼主| 发表于 2019-12-29 14:11 | 只看该作者
本帖最后由 zasflower1984 于 2019-12-29 14:22 编辑
lchunghan 发表于 2019-12-29 13:50
问题是游戏开发商那边的素材你花钱帮忙转吗?Src*alpha+Dst*(1-alpha)需要用RGBA 四个分量来表示,这就牵 ...

Photoshop 只是实现想法的一个工具而已。我的意思是显卡和3D图像渲染器知道更多的数据应该更能实现。

工具是次要的,Phtotoshop和渲染程序都是按照想法思路实现的一个方法而已。Photoshop只能一张一张图片手工处理,渲染程序可以处理所有的图像。况且,还有一点,渲染程序它是知道三角形顶点的精确坐标的。也就是,哪个像素是边缘,哪个不是,谁在前面,谁在后面,它是一清二楚的。

贴图根本就不需要Alpha啊,这个Alpha只是程序渲染的时候内部临时根据顶点三角形坐标位置算出来的。

其实我觉得老黄能做到。驱动怎么写,渲染怎么写,这是他们公司擅长的地方。
回复 支持 反对

使用道具 举报

2682

主题

1万

帖子

3万

积分

游戏天王

Rank: 11Rank: 11Rank: 11Rank: 11

贡献度
4717
金元
128845
积分
31753
精华
0
注册时间
2006-10-22

游戏天王~

11#
发表于 2019-12-29 14:22 | 只看该作者
zasflower1984 发表于 2019-12-29 14:11
Photoshop 只是实现想法的一个工具而已。我的意思是显卡和3D图像渲染器知道更多的数据应该更能实现。

工 ...

有奶子你才能规划 A罩  F罩  没奶子你谈啥  ! 你难道要老黄给每个开发游戏的都装奶子 !

回复 支持 反对

使用道具 举报

5

主题

15

帖子

23

积分

新手玩家

Rank: 1

贡献度
0
金元
230
积分
23
精华
0
注册时间
2019-12-28
12#
 楼主| 发表于 2019-12-29 14:23 | 只看该作者
本帖最后由 zasflower1984 于 2019-12-29 14:35 编辑
lchunghan 发表于 2019-12-29 14:22
有奶子你才能规划 A罩  F罩  没奶子你谈啥  ! 你难道要老黄给每个开发游戏的都装奶子 !

...

这个和游戏开发商有什么关系?这个是显卡驱动自己实现的。游戏开发商根本无需更改任何东西。

比如这个示范边缘抗锯齿,游戏开发商根本不需要更改任何现有的东西,改的是显卡驱动,不是游戏:


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

2682

主题

1万

帖子

3万

积分

游戏天王

Rank: 11Rank: 11Rank: 11Rank: 11

贡献度
4717
金元
128845
积分
31753
精华
0
注册时间
2006-10-22

游戏天王~

13#
发表于 2019-12-29 14:35 | 只看该作者
zasflower1984 发表于 2019-12-29 14:23
这个和游戏开发商有什么关系?这个是显卡驱动自己实现的。游戏开发商根本无需更改任何东西。
...

你需要 RGBA 四个分量 才能实现计算啊 !     你需要数字 1 才能实现 1+1 在没有数字1的时候 你怎么做1+1呢 !

回复 支持 反对

使用道具 举报

5

主题

15

帖子

23

积分

新手玩家

Rank: 1

贡献度
0
金元
230
积分
23
精华
0
注册时间
2019-12-28
14#
 楼主| 发表于 2019-12-29 14:37 | 只看该作者
本帖最后由 zasflower1984 于 2019-12-29 15:04 编辑
lchunghan 发表于 2019-12-29 14:35
你需要 RGBA 四个分量 才能实现计算啊 !

都说了那个Alpha只是一个临时计算出来的,贴图是不需要Alpha的。只是混色临时需要算出Alpha。贴图根本无需带Alpha信息。Alpha是用三角形顶点坐标计算出来的。

Alpha只是一个临时存在的东西。计算边缘,计算Alpha,使用Alpha混色,Alpha丢弃。

显卡有三角形的顶点坐标,自然就能根据那个坐标计算出Alpha。现在的显卡性能,算这种Alpha数字,小菜一碟。



以现在显卡的性能,计算出这种反锯齿,真的性能绰绰有余。

效果很好,不是么?计算量又很小。这种抗锯齿方案如果显卡驱动自带,简直可以拯救所有的游戏抗锯齿。游戏开发商无需修改现有的东西,性能损失几乎忽略不计。FPS估计也就掉个一帧两帧。

直接更新驱动即可。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

2682

主题

1万

帖子

3万

积分

游戏天王

Rank: 11Rank: 11Rank: 11Rank: 11

贡献度
4717
金元
128845
积分
31753
精华
0
注册时间
2006-10-22

游戏天王~

15#
发表于 2019-12-29 15:03 | 只看该作者
zasflower1984 发表于 2019-12-29 14:37
都说了那个Alpha只是一个临时计算出来的,贴图是不需要Alpha的。只是混色临时需要算出Alpha。贴图根本无需 ...

哎呀怎么还不明白了 !现在的技术是 从光去计算颜色 !  而不是从颜色去计算光。


比如 有一个灯照过去这样 照到了亮起没照到的暗。汇编位置就可以实现不同的色彩转变。     而你这套东西需要的是从颜色去反应光照,rgba成为计算的基础。  然而rgba在现在以后未来都不会去用。


回复 支持 反对

使用道具 举报

5

主题

15

帖子

23

积分

新手玩家

Rank: 1

贡献度
0
金元
230
积分
23
精华
0
注册时间
2019-12-28
16#
 楼主| 发表于 2019-12-29 15:07 | 只看该作者
本帖最后由 zasflower1984 于 2019-12-29 15:14 编辑
lchunghan 发表于 2019-12-29 15:03
哎呀怎么还不明白了 !现在的技术是 从光去计算颜色 !  而不是从颜色去计算光。

它不是光照啊,是边缘。

这么说吧:

获取原来的RGB数据。

获取三角形顶点坐标。

根据顶点坐标计算出Alpha。

根据Alpha混合贴图1的RGB和贴图2的RGB。

丢弃Alpha。

Alpha不依赖于RGB,依赖于三角形顶点坐标。

至于一个RGB混合另外一个RGB,再正常不过的操作。根本就无需RGBA,使用RGB,Alpha临时计算即可。显卡临时变量总有?不要告诉我显卡驱动程序连放个临时变量都没地方放。
回复 支持 反对

使用道具 举报

2682

主题

1万

帖子

3万

积分

游戏天王

Rank: 11Rank: 11Rank: 11Rank: 11

贡献度
4717
金元
128845
积分
31753
精华
0
注册时间
2006-10-22

游戏天王~

17#
发表于 2019-12-29 15:15 | 只看该作者
zasflower1984 发表于 2019-12-29 15:07
它不是光照啊,是边缘。

这么说吧:

还在RGB数据  !游戏不用RGB数据 !
比如我要某个 颜色 现在格式是 FLOAT x, y, z    。   
X g_pd3dDevice->SetStreamSource( 0, g_pVB, sizeof(CUSTOMVERTEX) )
Y g_pd3dDevice->SetVertexShader( D3DFVF_CUSTOMVERTEX )
Z g_pd3dDevice->DrawPrimitive( D3DPT_TRIANGLESTRIP, 0, 1 )
就这么短 结束了






回复 支持 反对

使用道具 举报

5

主题

15

帖子

23

积分

新手玩家

Rank: 1

贡献度
0
金元
230
积分
23
精华
0
注册时间
2019-12-28
18#
 楼主| 发表于 2019-12-29 15:18 | 只看该作者
本帖最后由 zasflower1984 于 2019-12-29 15:33 编辑
lchunghan 发表于 2019-12-29 15:15
还在RGB数据  !游戏不用RGB数据 !
比如我要某个 颜色 现在格式是 FLOAT x, y, z    。   
X g_pd3dDevi ...

D3D调用的是显卡驱动程序,这个Alpha计算是在显卡驱动里面计算的,和外部无关。Alpha值并不出现在调用方,而是驱动里面。也就是你调用D3D,D3D再调显卡驱动程序,驱动程序里面的代码。

简单来说,无需对现有的游戏代码做任何更改。英伟达和AMD改进显卡驱动即可。D3D,游戏程序都是无需更改的。

显卡,游戏,D3D,调用D3D的游戏程序或者引擎,都不需要更改,唯一要改的就是显卡驱动。

回复 支持 反对

使用道具 举报

2682

主题

1万

帖子

3万

积分

游戏天王

Rank: 11Rank: 11Rank: 11Rank: 11

贡献度
4717
金元
128845
积分
31753
精华
0
注册时间
2006-10-22

游戏天王~

19#
发表于 2019-12-29 15:45 | 只看该作者
本帖最后由 lchunghan 于 2019-12-29 15:53 编辑
zasflower1984 发表于 2019-12-29 15:18
D3D调用的是显卡驱动程序,这个Alpha计算是在显卡驱动里面计算的,和外部无关。Alpha值并不出现在调用方, ...

OpenGL所提出的颜色混合抗锯齿,intel AMD都有尝试但都是CPU去计算。 道理很简单显卡做不到。



老黄不是没尝试过,先转为YUV在把YUV转为RGB,用显存空间存储RGB数据然后混合。最后你会发现你这游戏不要玩了。
回复 支持 反对

使用道具 举报

5

主题

15

帖子

23

积分

新手玩家

Rank: 1

贡献度
0
金元
230
积分
23
精华
0
注册时间
2019-12-28
20#
 楼主| 发表于 2019-12-29 15:54 | 只看该作者
本帖最后由 zasflower1984 于 2019-12-29 15:58 编辑
lchunghan 发表于 2019-12-29 15:45
OpenGL所提出的颜色混合抗锯齿,intel AMD都有尝试但都是CPU去计算。 道理很简单显卡做不到。
...

显卡可以的,你把这张图片放大对比就知道,计算简单的不能再简单。显卡干这种事情绰绰有余。计算量小的很。所以我才说这种抗锯齿只会掉帧掉一帧两帧。




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

2682

主题

1万

帖子

3万

积分

游戏天王

Rank: 11Rank: 11Rank: 11Rank: 11

贡献度
4717
金元
128845
积分
31753
精华
0
注册时间
2006-10-22

游戏天王~

21#
发表于 2019-12-29 19:33 | 只看该作者
zasflower1984 发表于 2019-12-29 15:54
显卡可以的,你把这张图片放大对比就知道,计算简单的不能再简单。显卡干这种事情绰绰有余。计算量小的很 ...

但是你要知道一点 源颜色没有背景颜色也没有 ,我就问你怎么算。你这套东西想当然的认为RGB是标准,而且还要显卡去计算RGB  。显卡工作就是生成一幅线框图像,然后进行填充并添加纹理和阴影。

流水过程
    中央处理器(CPU)发送指令和几何数据到位于显卡内的图形处理器(GPU)。
    顶点着色器执行几何变换和光照计算。
    若几何着色器位于图形处理器内,它便会修改一些几何信息。
    计算后的几何模型被三角化(分割为三角形)。
    三角形被映射为像素块。

你认为这计算简单,是的确简单但是要把处理图像全部转成RGB难。
回复 支持 反对

使用道具 举报

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

本版积分规则

Archiver|手机版|3DMGAME ( 京ICP备14006952号-1  沪公网安备 31011202006753号

GMT+8, 2025-2-8 13:40 , Processed in 0.175586 second(s), 15 queries , Memcache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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