标签: rendering

读取,表示和渲染地图数据的最佳方法是什么?

我有兴趣将一个简单的导航应用程序编写为宠物项目.在搜索免费地图数据后,我已经确定了美国人口普查局TIGER 2007 Line/Shapefile地图数据.数据被分成各个县的zip文件,我已经为我的区域下载了一个县的地图数据.

将这个地图数据读入可用格式的最佳方法是什么?

我应该怎么做:

  • 读入这些文件
  • 解析它们 - 正则表达式或某些已经可以解析这些Shapefile的库?
  • 将数据加载到我的应用程序中 - 我应该将这些点直接加载到内存中的某些数据结构中吗?使用小型数据库?关闭地图数据的应用程序后,我不需要持久性.用户可以再次加载Shapefile.

在读完Shapefile数据后,渲染地图的最佳方法是什么?

理想情况下,我希望能够读取县地图数据shapefile并将所有多边形线渲染到屏幕上并允许旋转和缩放.

我应该怎么做:

  • 将lat/lon点转换为屏幕坐标? - 据我所知,Shapefile使用经度和纬度作为其点.显然,我将不得不以某种方式将这些转换为屏幕坐标以显示地图功能.
  • 以我可以轻松旋转和缩放整个地图的方式渲染地图数据(道路,边界等一系列折线)?
  • 将整个地图渲染为一系列"图块",以便仅呈现查看区域内的要素/线条?

防爆.作为显示地图呈现的TIGER数据:
替代文字

任何有经验和洞察我最好的方式阅读这些文件的人,我应该如何在我的程序中表示它们(数据库,内存数据结构),以及我应该如何渲染(使用旋转/缩放)地图数据在屏幕上将不胜感激.

编辑:澄清一下,我不想使用任何谷歌或雅虎地图API.同样,我不想使用OpenStreetMap.我正在寻找一种比使用那些apis /程序更划刮的方法.这将是一个桌面应用程序.

.net java graphics maps rendering

12
推荐指数
4
解决办法
7148
查看次数

JavaScript中3D渲染的最佳在线资源是什么?

首先介绍一下:

去年我写了这个http://dragan.yourtree.org/code/canvas-3d-graph/

现在,我想完全重写它,因为旧版本有一些限制,例如:有时会发生条形图不可见,因为它们是一个接一个地绘制的.

在这个旧版本中,没有真正的3D,只是2D线的bunck,它模仿3D.

现在,我想要的是进入全面的3D场景,我想将所有物体保存在内存中,并添加某种3D导航按钮,使用户可以在所有3轴上旋转整个场景,并缩放相机和出.

我已经决定将http://sylvester.jcoglan.com/用于矢量/矩阵的东西,但我仍然无法找到3D的好教程.互联网上有大量的文本,大多数是90年代的文本,不完整或写得非常糟糕.

所以,我的问题是:什么是最好的在线资源/教程,使我能够从头开始编写自己的JS 3D引擎.

它应涵盖所有相关主题:

  • 矢量
  • 矩阵
  • 对象
  • 相机
  • 场景渲染
  • 灯光
  • 在场景上旋转物体
  • 移动相机

等等.(我对前两个相当熟悉)

感谢您的时间.

javascript 3d rendering

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

我应该使用哪种浮点图像格式?

在过去,我已经将RGB图像(从物理模拟生成)保存为8位/通道PPM或PNG或JPEG.

现在我想保留模拟输出的动态范围,这意味着保存浮点图像,然后将转换处理为8位/通道作为后处理步骤(因此我可以将转换调整为8位而不运行冗长的模拟再次).

是否出现了"标准"浮点图像格式?

良好的免费支持库/查看器/操作工具,最好在Debian中提供,将是一个奖励.

c++ graphics rendering file-format hdrimages

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

有没有办法在Windows窗体中呈现SVG?

我正在使用一个库,该库将其部分状态呈现为SVG文档.

我想在Windows窗体或WPF环境中呈现它.目前有办法做到这一点吗?

如果没有,我可以修改库以使用更一般的渲染策略,然后添加XML适配器以恢复原始功能,但这不是我的首选策略.

svg rendering winforms

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

如何在Rails 3.1中渲染后执行某些任务

我正在使用Impressionist来记录页面展示次数.数据库写入只需要大约50ms,但我真的更喜欢在页面呈现并发送到客户端之后执行此操作.

我已经研究过通过Spawn分叉,但它建立了一个新的数据库连接,这对于这么小的工作来说似乎有些过分.延迟工作和其他后台处理库似乎是一个重大的过度杀伤.写入数据库只是为了推迟写入数据库......不是胜利.

我希望我可以:

def show
  render
  impressionist(@article)
end
Run Code Online (Sandbox Code Playgroud)

...并且让印象派使用相同的数据库连接和所有相同的请求数据来执行其操作,就在操作已经返回到客户端之后.但当然,这不是渲染方法的工作原理.

有解决方案吗 在Heroku Cedar上运行Rails 3.1和Ruby 1.9.2.

rendering fork ruby-on-rails ruby-on-rails-3.1

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

使用Javascript将GeoJSON转换为SVG

是否有一个现成的 Javascript插件,可以将GeoJSON字符串转换为SVG字符串?渲染引擎,如Tempo,或项目JsonT将是有用的,但我需要模板使它们工作.

javascript svg rendering geojson

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

HTML5 swipe.js css3过渡; 屏幕外渲染和页面元素的缓存

我正在使用swipe.js(http://swipejs.com)为平板电脑和台式机构建HTML5杂志.

一切似乎工作正常,在一个HTML页面中,我已经设置了彼此全屏列表元素.整个杂志都是在一个静态的html文件中构建的.我可以通过在平板电脑上滑动以及使用桌面版本的按钮来浏览页面(请参阅swipe.js主页上的示例,然后使用全屏幻灯片).

页面彼此相邻放置,并具有屏幕的尺寸.

[ |0||1||2| .. |i-1||i||i+1| .. |n| ]
Run Code Online (Sandbox Code Playgroud)

使用translate3d()css函数,在css3的帮助下完成了swipe.js转换.在这种情况下,使用硬件渲染.

在台式机(Chrome,Safari,FF),iPad1和(甚至更好的)iPad2上,这具有我想要的效果; 平滑过渡.完善!但是,在iPad3上,页面第一次进入(通过转换)时似乎呈现"慢".即使没有设置背景图像(只是颜色),转换页面的"渲染"也会被认为有点"慢"; 该页面由"闪烁"块构建.

假设:我的假设是(在阅读主题之后),这是因为浏览器只呈现屏幕内的元素,并且只会暂时刷新刷过的页面,然后清理缓存以控制内存管理.

我的问题:有没有办法控制屏幕外渲染和缓存,这样我就可以强制(预)渲染页面元素i-1,i + 1(并刷新所有其他页面元素的缓存),以加快我的过渡渲染?

注意:在StackOverflow的几个主题中,提到了css3过渡的"闪烁".我已经实现了建议的CSS技巧,但不会解决我的问题.

-webkit-backface-visibility: hidden;
-webkit-transform:translate3d(0,0,0);
Run Code Online (Sandbox Code Playgroud)

html5 rendering browser-cache swipe css-transitions

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

条件和未使用的采样器/纹理添加到SM2/3像素着色器的性能有多大?

我们在HLSL中有一个像素着色器,它在一些地方用于稍微不同的东西,因此有几个条件块意味着在某些情况下省略了复杂的功能.同样,这意味着我们将纹理作为采样器参数传递,而这些参数可能并不总是被使用.

我不知道这两件事增加了多少性能,但特别是因为我们在集成图形芯片上支持SM2.0,效率低下是个问题.那么,传递纹理而不使用它意味着任何额外的开销吗?并且使用if简单的行为来添加一些指令,还是会因为停顿等而对其进行大幅度的影响,就像进行CPU优化一样?

shader rendering hlsl pixel-shader

11
推荐指数
1
解决办法
6520
查看次数

在OpenGL中进行深度测试的Z-fighting解决方案 - 它们如何工作?

描述

我在OpenGL中遇到了Z-Fighting的主要问题,我花了很长时间才找到解决这个问题的方法.我发现的一些,我理解并不喜欢:

  • 移动多边形彼此远离(如OpenGL中的glPolygonOffset)
  • 根据Z坐标划分场景,并使用单独的干净z缓冲区绘制场景的部分.

那些我不明白的:

我已经在我的程序中实现了第二个,只需将它放入球的顶点着色器(它与地面z-fight):

float C = 1.0; 
float far = 2000.0; 
   gl_Position = u_projView * a_position;      
gl_Position.z = 2.0*log(gl_Position.w*C + 1.0)/log(far*C + 1.0) - 1.0;
gl_Position.z *= gl_Position.w;
Run Code Online (Sandbox Code Playgroud)

它工作了!

实际问题

  1. 任何人都可以解释我是如何在顶点着色器中更改顶点的Z坐标解决了问题而没有将顶点明显地移动到我身上?(场景看起来与人眼相同).它是如何改变z深度值的分布的?我猜我错过了一些关于渲染管道的知识.
  2. 任何人都可以向我解释我们如何使用Projection Matrix来解决问题?它是如何工作的?
  3. 是否还有其他类似的有效方法来解决z-fighting问题?

谢谢!

opengl graphics shader rendering glsl

11
推荐指数
1
解决办法
3982
查看次数

为什么firefox不能更好地渲染我的GIF文件?

我的网站上有一些GIF文件在除FireFox之外的每个浏览器上都呈现得非常流畅.以下屏幕描述了我的意思:

例1

这里基本上是Safari/Opera/Chrome渲染GIF ..非常流畅.

在此输入图像描述

这是FF上的渲染..非常不稳定和半扭曲的线条.

在此输入图像描述

例2

在Opera/Safari/Chrome上渲染,再次非常流畅.

在此输入图像描述

在FF渲染,再次非常波涛汹涌.

在此输入图像描述

这是一个必须使用设置调整的浏览器缺陷吗?到目前为止,我通过添加一些浏览器嗅探逻辑(我不想这样做)并放置在GIF的较小版本中来否定这一点.有什么建议?

UPDATE

这是实际的GIF ..在FF中打开这个问题,请提供反馈

在此输入图像描述 在此输入图像描述

html css firefox rendering gif

11
推荐指数
1
解决办法
477
查看次数