Tag: 渲染引擎

GLSL中的顶点着色器属性映射

我正在用GLSL着色器编码一个小的渲染引擎: 每个Mesh(well,submesh)都有一个顶点stream(例如,position,normal,texture,tangent等)到一个大的VBO和一个MaterialID中。 每种材质都有一组纹理和属性(例如镜面颜色,漫reflection颜色,颜色纹理,法线贴图等) 然后我有一个GLSL着色器,它是制服和属性。 我们说: uniform vec3 DiffuseColor; uniform sampler2D NormalMapTexture; attribute vec3 Position; attribute vec2 TexCoord; 我试图为GLSL着色器devise一种方法来定义属性和制服的stream映射(语义),然后将顶点stream绑定到适当的属性。 对网格说:“把你的位置stream属性”位置“和你的tex坐标在”TexCoord“。也把你的材料的漫reflection颜色在”DiffuseColor“和你的材料的第二个纹理”NormalMapTexture“ 目前,我正在使用硬编码名称的属性(即顶点pos始终是“位置”等),并检查每个统一和属性名称,以了解着色器正在使用它。 我想我正在寻找创build“顶点声明”的方法,但也包括制服和纹理。 所以我只是想知道人们是如何在大型渲染引擎中这样做的。 编辑: build议的方法回顾: 1.属性/统一语义由variables的名称给出 (我现在在做什么)为每个可能的属性使用预定义的名称.GLSL活页夹将查询每个属性的名称,并根据variables名称: //global static variable semantics (name,normalize,offset) = {"Position",false,0} {"Normal",true,1},{"TextureUV,false,2} …when linking for (int index=0;index<allAttribs;index++) { glGetActiveAttrib(program,index,bufSize,length,size[index],type[index],name); semantics[index]= GetSemanticsFromGlobalHardCodedList(name); } … when binding vertex arrays for render for (int index=0;index<allAttribs;index++) { […]

哪些CSSselect器或规则可以显着影响现实世界中的前端布局/渲染性能?

CSS渲染性能值得担心吗? 或者我们应该不用担心CSS的效率问题,只关注编写优雅或可维护的CSS呢? 这个问题的目的是为前端开发人员提供一个有用的资源,在这些资源上CSS的某些部分实际上可能会对设备性能产生重大影响,以及哪些设备/浏览器或引擎可能受到影响。 这不是一个关于如何编写优雅或可维护的CSS的问题,它纯粹是关于性能(尽pipe希望这里写的可以通知更多关于最佳实践的一般性文章)。 现有的证据 Google和Mozilla已经编写了编写高效CSS的指导方针, CSSLint的规则包括: 避免看起来像正则expression式的select器。不要使用复杂的相等运算符来避免性能损失 但他们都没有提供任何证据(我能find)的影响。 关于高效CSS的css-tricks.com文章指出(在概述一系列效率最佳实践之后),我们不应该not .. sacrifice semantics or maintainability for efficient CSS 。 一个完美杀死博客文章build议border-radius和box-shadow渲染比简单的CSS规则慢几个数量级。 这在Opera的引擎中是非常重要的,但在Webkit中是微不足道的。 此外,一个CSS杂志的基准testing发现,CSS3显示规则的渲染时间是微不足道的,并且比使用图像渲染等效效果要快得多。 知道你的手机testing了各种移动浏览器 ,发现他们都渲染CSS3同样微不足道(12毫秒),但它看起来像他们做了在PC上的testing,所以我们不能推断任何有关手持设备如何执行CSS3一般。 互联网上有 很多关于如何编写高效CSS的文章。 然而,我还没有find任何综合的证据,认为严重考虑CSS实际上对网站的渲染时间或活动有重大影响。 背景 退后一步,我要去尝试科学http://brightgreenscotland.org/wp-content/uploads/2010/09/stand-back-Im-going-to-try-science.png 我提出了这个问题的赏金,试图利用SO的社区力量来创造一个有用的研究资源。

什么是WebKit,它是如何与CSS相关的?

最近,我已经看到标签“webkit”的问题。 这样的问题通常倾向于与CSS,jQuery,布局,跨浏览器兼容性问题等有关的基于Web的问题。 那么这个“webkit”是什么?它与CSS有什么关系? 我也注意到各种网站的源代码中有很多-webkit-…属性。 这两个有关系吗? 更新 所以从目前的答案… WebKit是Safari / Chrome的HTML / CSS网页浏览器渲染引擎。 IE / Opera / Firefox是否有这样的引擎,以及使用其他引擎的优缺点有哪些? 我可以在Firefox中使用WebKitfunction吗? 最终的问题是IE支持WebKit吗? 更新2 所有主stream浏览器都使用不同的渲染引擎。 我想这是为什么有这么多的跨浏览器兼容性问题的一个重要原因! 那么,是否有某种项目或移动到所有浏览器将使用的标准渲染引擎? HTML5是否会结束跨浏览器兼容性问题?