标签: rendering

CSS样式表中的规则顺序是否会影响渲染速度?

虽然这可能会导致一个简单的是或否答案,但无论如何我都会去


请考虑以下示例:

HTML

<html>
    <head>
    </head>
    <body>
        <div class="foo">
            <span class="bar">Hello world!</span>
            <p>Some really interesting text.</p>
        </div>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

CSS

html {
    /* some css */
}
body {
    /* some css */
}
div.foo {
    /* some css */
}
div.foo span.bar {
    /* some css */
}
div.foo p {
    /* some css */
}
Run Code Online (Sandbox Code Playgroud)

css规则出现的顺序是否会影响浏览器如何(快速)呈现页面?(在这个例子中它并不重要,但考虑一个带有html和css负载的真实网站)

因此,上述css脚本将比以下内容更快或更轻松地呈现:

div.foo p {
    /* some css */
}
div.foo span.bar {
    /* some css */
}
div.foo {
    /* some css …
Run Code Online (Sandbox Code Playgroud)

html css optimization rendering minify

13
推荐指数
2
解决办法
2231
查看次数

渲染无限大的平面

我想渲染一个平面,使它看起来好像在所有方向上都是无限的.我希望远处的飞机边界成为地平线.

使用简单的网格不起作用 - 计算机无法渲染无限多个三角形.即使这是可能的,相机平截头体也会切出远处的多边形并在平面边界和地平线之间产生间隙.

解决方法是以数学方式计算地平线:在平面上找到点,这些点也位于无穷远处的平面上.连接这些点和视口的两个角会创建一个代表所寻找平面的梯形.但是,通过这种方式,飞机无法正常点亮,或应用纹理,或其他需要精细三角测量的东西......

opengl rendering linear-algebra plane

13
推荐指数
1
解决办法
1万
查看次数

WPF是否可以在性能敏感的环境中呈现其上有300,000个点的线路径?

一个简单的XY线图:X轴代表可能的评级百分比的完整范围,从一端的0%到另一端的100%.具体而言,X值将代表我们的评级截止值,或者交易在不再可接受之前可以具有的最低评级.Y轴将显示从0到已通过的事务总数的值.Y值将表示评级大于当前X值(或大于或等于当前X值的交易总数,我尚未确定).首次绘制此图形时,不会发生任何事务,因此图形将从"y = 0x"开始.

假设第一笔交易通过,评级为40%.交易评级表明,如果我们的评级截止值小于40%,则此交易是可以接受的.(...或者小于或等于40%.再次,我还没有决定).

首先,Y轴将重新缩放以显示0-1的范围(因为1是事务总数).然后该行将被修改以指示0 = 40或更多的交易是可接受的,并且该交易在x = 40或更少时是可接受的.这很容易在WPF中完成,只需在线路上添加两个点 - 一个在(40,0),另一个在(40,1) - 然后将线的左端点移动到(0,1).该行的右端点将保持为(100,0).然后可以对第二个事务重复此过程,依此类推.

问题是我们将处理六位数的交易.我想确保我在最大程度上使用WPF的硬件加速矢量绘图功能,以确保图形不会滞后或冻结程序的其余部分,因为它试图将300,000个点渲染到单个线路径上.或者WPF应该能够在心跳中处理这样的数字?我需要找到一种方法来实现这个图,而不会使应用程序停止运行.我相信WPF的矢量绘图平台将提供一个解决方案,但我不知道如何利用WPF来确定我正在充分利用WPF的高性能渲染功能.

wpf performance rendering graph vector

12
推荐指数
2
解决办法
9435
查看次数

WPF在Windows XP和Windows 7上的呈现方式不同

为什么WPF在Windows XP和Windows 7上呈现不同?

我在两台计算机上都使用.NET SP1 ..

我的布局就像这个窗口没有工具栏,并设置为最大化,因此它适合整个屏幕.

在那之下,我有一个Viewbox设置为使用Stretch:Uniform,在我之下我有我的LayoutRoot.

这样我希望在所有计算机上获得相同的布局,但它似乎在Windows XP上的呈现方式完全不同.有些项目有点小,布局看起来不那么好.

我试图将我的Windows 7计算机上的重新设置更改为与Windows XP计算机相同,并保持其应有的布局.

两台计算机都使用96 DPI.

Windows XP

Windows 7的

wpf rendering windows-xp windows-7

12
推荐指数
3
解决办法
9883
查看次数

优化iPhone OpenGL ES填充率

我在iPhone上有一个Open GL ES游戏.我的帧率非常糟糕,大约20fps.在iPhone 3G上使用Xcode OpenGL ES性能工具,它显示:

渲染器利用率:95%至99%

泰勒利用率:~27%

我正在绘制很多非常大的图像,并且有很多混合.如果我减少绘制的图像数量,帧速率从大约20到大约40,尽管性能工具结果保持不变(渲染器仍然是最大值).我想我受到iPhone 3G填充率的限制,但我不确定.

我的问题是:如何更细致地确定瓶颈在哪里?这是我最大的问题,我只是不知道一直在做什么.如果它是填充物,除了减少绘制之外,还有什么可以改进的吗?

我正在使用纹理地图集.我试图最小化图像绑定,虽然它并不总是可能的(绘制顺序,并非所有东西都适合一个1024x1024纹理等).我做的每一帧10个图像绑定.这似乎很合理,但我可能会弄错.

我正在使用顶点数组和glDrawArrays.我真的没有很多几何形状.如果需要,我可以尝试更精确.每个图像都是2个三角形,我尝试批量处理是可能的,尽管经常(可能有一半的时间)图像是用单独的glDrawArrays调用绘制的.除了图像,我还有大约60个三角形的几何图形在~6个glDrawArrays调用中呈现.我经常在调用glDrawArrays之前进行glTranslate.

它会改善帧速率以切换到VBO吗?我不认为它是一个巨大的几何形状,但也许它由于其他原因更快?

是否有一些需要注意的事情会降低性能?例如,我应该避免使用glTranslate,glColor4g等吗?

我在每帧3个地方使用glScissor.每次使用都包含2个glScissor调用,一个用于设置,一个用于将其重置为原来的状态.我不知道这里是否会产生很大的性能影响.

如果我使用PVRTC它能够更快地渲染吗?目前我的所有图片都是GL_RGBA.我没有记忆问题.

我的全屏纹理之一是256x256.使用480x320会更好吗,这样手机不需要进行任何缩放吗?纹理尺寸是否还有其他一般性能建议?

以下是按照以下顺序粗略了解我正在绘制的内容:

1)切换到透视矩阵.2)绘制全屏背景图像3)绘制半透明的全屏图像(这个具有滚动纹理).4)画几个精灵.5)切换到ortho矩阵.6)画几个精灵.7)切换到透视矩阵.8)绘制精灵和一些其他纹理几何.9)切换到ortho矩阵.10)绘制几个精灵(例如,游戏HUD).

步骤1-6绘制了一堆背景的东西.8绘制了大部分游戏内容.10绘制HUD.

正如你所看到的,有很多层,其中一些全屏,一些精灵相当大(屏幕的1/4).这些图层使用半透明,所以我必须按照从前到后的顺序绘制它们.通过需要在视角和其他视角中绘制各种层,这进一步复杂化.

如果需要,我很乐意提供其他信息.在此先感谢任何有关我的问题的性能提示或一般建议!

编辑:

我添加了一些日志记录,看看我正在做多少glDrawArrays调用,以及有多少数据.我每帧做大约20次glDrawArray调用.通常,这些中约有1到6个具有大约40个顶点.其余的调用通常只有2个顶点(一个图像).我只是使用glVertexPointer和glTexCoordPointer.

iphone optimization performance rendering opengl-es

12
推荐指数
1
解决办法
2万
查看次数

如何从特定的Ruby on Rails页面中删除应用程序布局?

如何从特定页面上的渲染中删除布局application.html.erb.它现在在我的应用程序的所有页面上都可见.

layout rendering web-applications ruby-on-rails

12
推荐指数
2
解决办法
1万
查看次数

实际使用的fwidth glsl函数是什么?

每次我醉酒浏览,所以我看到一个未解答的宽带问题.它让我想知道它实际上是做什么的.

阅读文档是:abs(dFdx(p))+ abs(dFdy(p)).

因此,经典的mip选择不是max(dx,dy).是替代mip选择吗?但我找不到abs(dx)+ abs(dy)会更好的情况.必须有一些siggraph纸或常见的算法,我完全没有使用该功能.它必须非常受欢迎,因为它使它成为GLSL.我唯一能想到的是我失踪的一些2d后置滤镜.
但是什么?我相信这里有人知道,一旦你看到它,这是显而易见的.那么:什么算法使用abs(dx)+ abs(dy)?

opengl graphics shader rendering glsl

12
推荐指数
1
解决办法
6308
查看次数

完美填充三角渲染算法?

我在哪里可以获得渲染实心三角形的算法?Edit3:我无法使用OpenGL进行渲染.我需要每像素算法.

我的目标是从三角形渲染一个正多边形,所以如果我使用这个三角形填充算法,每个三角形的边缘将不会重叠(或在它们之间产生间隙),因为如果我使用例如它会导致渲染错误XOR渲染像素.

因此,渲染质量应与OpenGL渲染相匹配,因此我应该能够定义 - 例如 - 具有N顶点的圆,并且它将呈现为任意大小的圆形; 所以它不像一些三角形填充算法那样仅使用整数坐标来渲染它.

我需要能够控制三角形填充自己:我可以添加自己的逻辑,了解每个像素的渲染方式.所以我需要渲染背后的裸代码,以完全控制它.它应该足够有效地绘制成千上万个三角形而不用等待超过一秒钟.(我不确定它的速度有多快,但我希望它不会超过10秒).

首选语言是C++,但我可以根据自己的需要转换其他语言.

如果没有免费的算法,我可以在哪里学习自己构建一个,实际上有多难?(我=数学菜).

我添加了OpenGL标签,因为这与它有某种关系.

编辑2:我在这里尝试了算法:http://joshbeam.com/articles/triangle_rasterization/但它似乎有点破碎,这里是一个带有64个三角形的圆圈: 在此输入图像描述

但如果你放大,你可以看到错误: 在此输入图像描述

说明:有2个像素与其他三角形颜色重叠,不应该发生!(或透明度或XOR等效果会产生不良渲染).

似乎错误在较小的圆圈上更明显.如果我想对像素有XOR效果,这是不可接受的.

我该怎么做才能解决这些问题,所以它会在没有重叠像素或间隙的情况下完美填充?

编辑4:我注意到渲染非常小的圆圈并不是很好.我意识到这是因为坐标确实转换为整数.如何将坐标视为浮点数并使其像OpenGL一样精确而完美地渲染圆圈?以下是小圆圈看起来有多糟糕的例子:

在此输入图像描述

注意OpenGL渲染是多么完美!这就是我想要实现的,而不使用OpenGL.注意:我不想只渲染完美的圆形,而是任何多边形形状.

c++ language-agnostic geometry rendering

12
推荐指数
1
解决办法
2万
查看次数

相邻的svg:多边形边不相交

我正在使用彼此相邻的多边形绘制条形图,如下所示:

如果仔细观察,每个多边形之间会有空白区域(缩放):

我试图阻止这种情况发生.我找到了SVG shape-rendering属性并将其设置为geometricPrecision.这解决了问题,但给了我非常清晰的边缘:

我也不想要那个.我尝试了其他可能的值,shape-rendering但没有一个很好.(我在WebKit上试过这些.)我正在寻找解决方案.

对于那些感兴趣的人,这里的图表是jsFiddle .

svg rendering shape-rendering

12
推荐指数
1
解决办法
1301
查看次数

VectorDrawable渲染问题

我遇到了支持库引入的VectorDrawables问题.

环顾四周,我在Android Studio中阅读了有关错误缩放或错误预览的类似问题.好吧,我的问题很不一样.

问题:

实际上,我的VectorDrawable在Android Studio预览中完美呈现,但在运行时在设备上被搞砸了(Android v.5.1.1和6.0).

出口:

从SVG文件(只有一个复合路径)开始,我使用Android Studio工具导入它(但我也尝试了许多其他工具来转换它).该文件的制作方式与其他文件一样,但只有一些渲染效果不佳.

我做了什么:

我尝试使用app:srcCompat(即使使用src :)在imageview中设置它.我试图在菜单中使用它(直接设置图标,或使用选择器).

SVG代码:

<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 626.96 610.53"><title>PATHOLOGIES</title><path d="M5766.55,588.54a54.73,54.73,0,0,0-4.23-3.81,248.33,248.33,0,0,0,31.34-121.54c-0.23-138.68-114.72-251.15-253.38-249-134.71,2.07-243.52,110.91-245.54,245.64a249.48,249.48,0,0,0,390.59,209.52l0.21,0.22,155.12,155.12,81-81Zm-222.36,64.92c-104.85,0-189.85-85-189.85-189.85s85-189.85,189.85-189.85S5734,358.76,5734,463.61,5649,653.46,5544.19,653.46ZM5452,347.1l7.72-22.08a161.29,161.29,0,0,1,52.5-20.55l-19.84,56.75A19.25,19.25,0,0,1,5467.83,373l-4-1.41A19.25,19.25,0,0,1,5452,347.1Zm20.13,82.62L5430,502.57a19.25,19.25,0,0,1-26.29,7l-3.71-2.14a19.25,19.25,0,0,1-7-26.29L5435,408.33a19.25,19.25,0,0,1,26.29-7l3.71,2.14A19.25,19.25,0,0,1,5472.1,429.72Zm-82.73-14.9A161.59,161.59,0,0,1,5408.85,374l9.06,9.06a19.25,19.25,0,0,1,0,27.22l-3,3A19.24,19.24,0,0,1,5389.37,414.82Zm151.76-54A19.25,19.25,0,0,1,5552,335.85l55.51-21.72a162.36,162.36,0,0,1,43.87,27.64A19.17,19.17,0,0,1,5646,345l-78.34,30.65a19.25,19.25,0,0,1-24.94-10.91Zm-13.43,29.12,66.74,51.21a19.25,19.25,0,0,1,3.55,27l-2.61,3.4a19.25,19.25,0,0,1-27,3.55l-66.74-51.21a19.25,19.25,0,0,1-3.55-27l2.61-3.4A19.25,19.25,0,0,1,5527.69,389.91Zm83.57,191.47-2.82,3.23a19.25,19.25,0,0,1-27.15,1.86l-63.41-55.28A19.25,19.25,0,0,1,5516,504l2.82-3.23a19.25,19.25,0,0,1,27.16-1.86l63.41,55.28A19.25,19.25,0,0,1,5611.26,581.38Zm60.09-191.15,4,1.59a19.25,19.25,0,0,1,10.71,25l-31.28,78.09a19.25,19.25,0,0,1-25,10.71l-4-1.59A19.25,19.25,0,0,1,5615,479l31.28-78.09A19.25,19.25,0,0,1,5671.34,390.24ZM5504.73,604.39a19.19,19.19,0,0,1-4.85,15.4,161.36,161.36,0,0,1-38.43-16.53l-9.92-76.83a19.25,19.25,0,0,1,16.62-21.55l4.25-.55A19.25,19.25,0,0,1,5494,521ZM5686.4,538L5685,544.4a163.11,163.11,0,0,1-56.5,57.93l16.12-73.51a19.25,19.25,0,0,1,22.92-14.68l4.19,0.92A19.25,19.25,0,0,1,5686.4,538Z" transform="translate(-5294.72 -214.14)"/></svg>
Run Code Online (Sandbox Code Playgroud)

可转换代码:

<vector android:height="24dp" android:viewportHeight="610.53"
android:viewportWidth="626.96" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#FF000000" android:pathData="M471.8,374.4a54.7,54.7 0,0 0,-4.2 -3.8,248.3 248.3,0 0,0 31.3,
-121.5c-0.2,-138.7 -114.7,-251.1 -253.4,-249 -134.7,2.1 -243.5,110.9 -245.5,245.6a249.5,249.5 0,0 0,390.6 209.5l0.2,
0.2 155.1,155.1 81,-81ZM249.5,439.3c-104.8,0 -189.9,-85 -189.9,-189.9s85,-189.9 189.9,-189.9S439.3,144.6 439.3,
249.5 354.3,439.3 249.5,439.3ZM157.3,133l7.7,-22.1a161.3,161.3 0,0 1,52.5 -20.5l-19.8,56.8A19.3,19.3 0,0 1,
173.1 158.9l-4,-1.4A19.3,19.3 0,0 1,157.3 133ZM177.4,215.6L135.3,288.4a19.3,19.3 0,0 1,-26.3 7l-3.7,-2.1a19.3,
19.3 0,0 1,-7 -26.3L140.3,194.2a19.3,19.3 0,0 1,26.3 …
Run Code Online (Sandbox Code Playgroud)

svg android rendering android-vectordrawable

12
推荐指数
3
解决办法
4931
查看次数