csgo 多重采样抗锯齿 暗黑3怎么设置

抗锯齿技术分析_图文_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
抗锯齿技术分析
上传于|0|0|文档简介
&&这个文档简要介绍了抗锯齿技术:包括抗锯齿技术的类型、原理及在游戏中的应用。
阅读已结束,如果下载本文需要使用1下载券
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩17页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢Windows下,通过程序设置全屏抗锯齿(多重采样)的方法_C++,C语言_ThinkSAAS
Windows下,通过程序设置全屏抗锯齿(多重采样)的方法
Windows下,通过程序设置全屏抗锯齿(多重采样)的方法
内容来源: 网络
这里说的全屏抗锯齿,不是基于着色器的FXAA之类的方式,而是兼容性更好的,基于固定管线的多重采样方式。
先来说一下开发环境,我用的是VC2013+GLEW1.11。
要通过程序设置多重采样,首先需要进入控制面板,确定抗锯齿的设置是“根据应用程序而定” ,当然,这个设置的具体名称,不同的显卡厂商有不同的叫法。
接下来,就是重点了。
Windows下要通过程序设置多重采样,必须使用wglChoosePixelFormatARB这个函数。目前网上基本都是自己去获取这个函数的接口地址,其实根本不用这么麻烦。GLEW已经有这个函数接口了,我们要做的,就是正确地使用而已。正确使用这个函数的关键,就是需要创建一个临时窗体,通过这个窗体,我们可以初始化GLEW,以及获取必须的基础像素格式,然后再使用wglChoosePixelFormatARB这个函数,得到可用的多重采样像素格式,最后,对渲染窗口设置这个像素格式即可。
//----------创建一个临时窗体
WNDCLASS //窗体类结构体
wc.style = CS_HREDRAW | CS_VREDRAW; //窗体风格
wc.lpfnWndProc = WndP //窗体处理函数
wc.cbClsExtra = 0; //窗体类是否由扩展
wc.cbWndExtra = 0; //窗体实例是否由扩展
wc.hInstance = NULL; //窗体句柄
wc.hIcon = LoadIcon(0, IDI_APPLICATION); //窗体图标
wc.hCursor = LoadCursor(NULL, IDC_ARROW); //窗体鼠标样式
wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); //窗体背景颜色
wc.lpszMenuName = NULL; //窗体菜单
wc.lpszClassName = L"BaseWndClass"; //窗体类名
if (!RegisterClass(&wc)) //判断窗体是否注册成功
MessageBox(L"注册失败");
return;
//创建窗体
secondwnd = CreateWindow(L"BaseWndClass", //窗体类名
L"MyFrom",
//窗体标题名
WS_OVERLAPPEDWINDOW,
//窗体风格
CW_USEDEFAULT,
CW_USEDEFAULT, //窗体坐标
CW_USEDEFAULT,
CW_USEDEFAULT, //窗体坐标
NULL, //窗体的父窗体
NULL, //窗体的子菜单
//窗体句柄
NULL); // 如果函数成功,返回值为新窗口的句柄:如果函数失败,返回值为NULL
if (secondwnd == 0)//判断创建窗体是否成功
MessageBox(L"创建窗体失败");
return;
::ShowWindow(secondwnd, SW_HIDE); //显示窗体
::UpdateWindow(secondwnd); //绘制窗体;
PIXELFORMATDESCRIPTOR pfd = //定义像素格式
sizeof(PIXELFORMATDESCRIPTOR), // 上述格式描述符的大小
// 版本号
PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFFER,
PFD_TYPE_RGBA,
// 申请 RGBA 格式
0, 0, 0, 0, 0, 0,
// 忽略的色彩位
// 无Alpha缓存
// 忽略Shift Bit
// 无累加缓存
0, 0, 0, 0,
// 忽略聚集位
// 32位 Z-缓存 (深度缓存)
// 无蒙板缓存
// 无辅助缓存
PFD_MAIN_PLANE,
// 主绘图层
// Reserved
// 忽略层遮罩
//----------用这个临时窗体得到一个可用HGLRC
HDC secondDC = ::GetDC(secondwnd);
int nIndex = ChoosePixelFormat(secondDC, &pfd); //选择刚刚定义的像素格式
if (nIndex == 0)
return;
SetPixelFormat(secondDC, nIndex, &pfd);
//设置像素格式
glRC = wglCreateContext(secondDC);
wglMakeCurrent(secondDC, glRC);
  //----------然后初始化GLEW
GLenum glerr = glewInit();
if (glerr != GLEW_OK)
MessageBox(L"无法初始化GLEW!");
OutputDebugString(L"成功加载GLEW
UINT Multisample = 4; //4倍多重采样率
fAttributes[] = { 0, 0 };
int iAtributes[] =
WGL_DRAW_TO_WINDOW_ARB, GL_TRUE,
WGL_SUPPORT_OPENGL_ARB, GL_TRUE,
WGL_ACCELERATION_ARB, WGL_FULL_ACCELERATION_ARB,
WGL_COLOR_BITS_ARB, 24,
WGL_ALPHA_BITS_ARB, 8,
WGL_DEPTH_BITS_ARB, 32,
WGL_STENCIL_BITS_ARB, 8,
WGL_DOUBLE_BUFFER_ARB, GL_TRUE,
WGL_SAMPLE_BUFFERS_ARB, GL_TRUE,
WGL_SAMPLES_ARB, Multisample,
//----------取得可用的多重采样像素格式
if (!wglChoosePixelFormatARB(secondDC, iAtributes, fAttributes, 1, &pixelformat, &numformat))
MessageBox(L"找不到可用的抗锯齿格式");
  //----------删除由临时窗体得到的HGLRC,同时销毁临时窗体
wglMakeCurrent(NULL, NULL);
wglDeleteContext(glRC);
::ReleaseDC(secondwnd, secondDC);
::DestroyWindow(secondwnd);
//----------用得到的多重采样像素格式,设置渲染窗体
SetPixelFormat(this-&GetDC()-&m_hDC, pixelformat, &pfd);
//设置像素格式
glRC = wglCreateContext(this-&GetDC()-&m_hDC);
wglMakeCurrent(this-&GetDC()-&m_hDC, glRC);
上面这段代码,就是按照我所说的方式初始化了OpenGL。
这样设置后,你就能通过glEnable/glDisable启用或禁用多重采样了。
希望这点经验能够对和我一样曾困于此问题的朋友有所帮助。
PHP开发框架
开发工具/编程工具
服务器环境
ThinkSAAS商业授权:
ThinkSAAS为用户提供有偿个性定制开发服务
ThinkSAAS将为商业授权用户提供二次开发指导和技术支持
让ThinkSAAS更好,把建议拿来。
开发客服微信成龙(4386501)
说说QQSM的全屏抗锯齿,&MSAA&和&CSAA&的功能与作用。消除误解!全屏抗锯齿设置不好,直接影响到游戏帧数!全屏抗锯齿设置不好,会降低游戏帧数!简介:  FullSceneAnti-aliasing(FSAA)是一种能够消除画面中图形边缘的锯齿,使画面看起来更为平滑的一种技术。而此抗锯齿(Anti-aliasing)的技术通常被运用於3D或文字的画面。其主要的方法就是将在图形边缘会造成锯齿的这些像素(pixel)与其周围的像素作一个平均的运算,来达到图形平滑的效果,但其缺点就是会造成画面有些许的模糊。在此篇文章中,将介绍两种被用来实现FSAA的主要技术-OrderedGridSuperSampling(OGSS)和RotatedGridSuperSampling(RGSS)。所谓的OGSS就是将原来的画面放大并且在这放大的画面中进行上色的动作,之後再将画面还原到原来的大小显示在萤幕上,这样的做法所得到画面会将画面中影像边缘的锯齿消除。而RGSS比OGSS多了一个调整取样(Jitter)的步骤来达成消除锯齿的目的分类:  全屏抗锯齿大致可以分为以下几种模式:一、SSAA  SSAA-超级采样抗锯齿  人眼很难分辨超过300DPI(DPI是“dot per inch”的缩写。顾名思义,就是指在每英寸长度内的点数。)以上的彩色点。也就是说,一台对角线为15英寸的显示器,如果分辨率为00的话,那就没有做全抗锯齿的必要了,因为人眼无法分辨那么细的点了。  超级采样抗锯齿(SuperSampling Anti-Aliasing)就是把当前分辨率成倍提高(如当前分辨率为8,开启2倍的SSAA后,画面放大到36),然后再把画缩放到当前的显示器上。这样的做法实际上就是在显示尺寸不变的情况提高分辨率,让单个像素变得极小,这样就能够大幅减轻画面的锯齿感了。不过是由于对整个显示画面的放大,因此它消耗的显示资源也是非常大的。二、MSAA  MSAA-多重采样抗锯齿  多重采样抗锯齿(MultiSampling Anti-Aliasing)的原理与超级采样抗锯齿相同,不过MSAA是寻找出物体边缘部分的像素,然后对它们进行缩放处理。由于只是物体的外层像素进行缩放处理,忽略掉了不会千万锯齿的内部像素,所以显卡不会像处理SSAA那样需要庞大的计算量,因此MSAA比起SSAA来更有效。三、CSAA  CSAA-覆盖采样抗锯齿  覆盖采样抗锯齿(CoverageSampling Anti-Aliasing)是nVidia G80系列出现时一并出现的抗锯齿技术。它的原理是将边缘多边形里需要采样的子像素坐标覆盖掉,抒原像素坐标强制安置在硬件和驱动程序预告算好的坐标中。这就好比采样标准统一的MSAA,能够最高效率地执行边缘采样,交通提升非常明显,同时资源占用也比较低。四、CFAA  CFAA-可编程过滤抗锯齿  可编程过滤抗锯齿(Custom Filter Anti-Aliasing)技术起源于AMD-ATI的R600家庭。简单地说CFAA就是扩大取样面积的MSAA,比方说之前的MSAA是严格选取物体边缘像素进行缩放的,而CFAA则可以通过驱动和谐灵活地选择对影响锯齿效果较大的像素进行缩放,以较少的性能牺牲换取平滑效果。显卡资源占用也比较小。  目前最主流的是CSAA和CFAA,应该是最实用、最有效率的全屏抗锯齿模式。它们不仅有良好的平滑效果,同时对显示资源占用率也不高。覆盖采样抗锯齿  CSAA-覆盖采样抗锯齿  覆盖采样抗锯齿(CoverageSampling Anti-Aliasing)是nVidia G80系列出现时一并出现的抗锯齿技术。它的原理是将边缘多边形里需要采样的子像素坐标覆盖掉,抒原像素坐标强制安置在硬件和驱动程序预告算好的坐标中。这就好比采样标准统一的MSAA,能够最高效率地执行边缘采样,交通提升非常明显,同时资源占用也比较低。多重采样抗锯齿  MSAA是“多重采样抗锯齿”,可以使画面更加平滑。  多重采样抗锯齿(MultiSampling Anti-Aliasing)的原理就是把当前分辨率成倍提高,然后再把画缩放到当前的显示器上。这样的做法实际上就是在显示尺寸不变的情况提高分辨率,让单个像素变得极小,这样就能够大幅减轻画面的锯齿感了。不过是由于对整个显示画面的放大,因此它消耗的显示资源也是非常大的。不过MSAA是寻找出物体边缘部分的像素,然后对它们进行缩放处理。由于只是物体的外层像素进行缩放处理,忽略掉了不会产生锯齿的内部像素,所以显卡不会像处理SSAA(超级采样抗锯齿)那样需要庞大的计算量,因此MSAA比起SSAA来更有效。全屏抗锯齿设置是最影响游戏帧数的设置。全屏抗锯齿设置不好,直接影响到游戏帧数!
成龙 最后编辑于
战队详细介绍论坛链接:
笔墨伺候(7924347)
垂直 同步可以 防止撕裂
笔墨伺候(7924347)
技术贴,顶(前忘了说)
成龙(4386501)
大厅都在60左右。绝对50以上。把抗锯齿调到CSAA 8x。
战队详细介绍论坛链接:
朋友妻不客气(7151955)
那,(*¯︶¯*)龙哥,中端电脑要几倍啊,(来自android客户端)
取个名字好难(3079858)
根据我的测试,一般现在的中端显卡开8XCSAA完全木有问题,有的小超一下还可以开到16XCSAA!(帧数保持在30左右)
给新手们看的!强烈推荐! 画面就是标准!!!!!画面不好全都是战斗力只有5的渣渣
取个名字好难(3079858)
理论上现在的游戏中,CSAA效果要好一些
给新手们看的!强烈推荐! 画面就是标准!!!!!画面不好全都是战斗力只有5的渣渣
1997dadada(88711)
游戏锁FPS在62,一般显示器刷新率在75,所以垂直同步防止撕裂的作用在全球里基本没效果。唯一有用的就是省点电,稳定帧数,不至于落差太大
灭绝师公(5709136)
果然。。。高手在民间。。。。无论如何的效果,,我都要表扬下LZ。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
灭绝师公(5709136)
龙老大。。可以QQ联系吗?以后有游戏问题想找您咨询下——————————————————————————————不知可否给岸老脸点面子-----------------------------谢谢==================================

我要回帖

更多关于 csgo抗锯齿 的文章

 

随机推荐