- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个程序生成的 Terrain
,它基于 Unity 的地形系统
。
现在我想要一张来自Terrain
的Map
,不是迷你 map 而是完整 map ,保存为2D Texture
。
首先我想到了一个RenderTexture
,但是如果我用一个Camera
来捕捉整个Terrain
,结果取决于分辨率方面,而且我也有问题,因为 Terrain
的 width
是 3.2x
length
。
有没有更好的方法来解决这个问题?
最佳答案
制作一个新相机并将其放置在地形上。
确保它处于正交模式
将 camera.aspect
字段设置为 terrainData.size.x/terrainData.size.z
将 camera.orthographicSize
字段设置为 terrainData.size.z/2f
确保相机框的方向与地形轴一致。类似于 cam.transform.LookAt(terrain.GetPosition(), terrain.transform.forward);
的内容将达到目的。
然后,您应该能够创建具有您想要的像素分辨率的 RenderTexture
(基于 Rafal Wiliński 的 this answer):
int resHeight = 1000;
int resWidth = Mathf.RoundToInt(resHeight * camera.aspect);
RenderTexture rt = new RenderTexture(resWidth, resHeight, 24);
camera.targetTexture = rt; //Create new renderTexture and assign to camera
Texture2D screenShot = new Texture2D(resWidth, resHeight, TextureFormat.RGB24, false); //Create new texture
camera.Render();
RenderTexture.active = rt;
screenShot.ReadPixels(new Rect(0, 0, resWidth, resHeight), 0, 0); //Apply pixels from camera onto Texture2D
camera.targetTexture = null;
RenderTexture.active = null; //Clean
Destroy(rt); //Free memory
然后,您的地形将在 screenshot
关于c# - 统一: Create a texture from Terrain,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58896707/
目前我正在开发一个小项目,只是为了一点乐趣。它是一个使用 OpenGL 的 C++、WinAPI 应用程序。 我希望它能变成一款在六边形网格上玩的 RTS 游戏,当我完成基本的游戏引擎时,我计划进一步
我想实现一个 3D 赛车游戏,我需要近似地形上任意点的坡度的大小和方向。 地形数据格式: - heights[ ][ ]: 2D 浮点数组(以米为单位表示高度) - unit: (i, j) - (i
我在我的 gwt 项目中使用 cesium,我在地形中使用 cesium-terrain-server。 (不是 cesium-gwt ,用 jsni 开发我自己的代码)我的问题:我在地形上创建图形(
我最近正在探索和研究 Sebastian Lague 的 Procedural Landmass Generation 的部分内容系列。绝对优秀的系列,我会推荐给任何想要了解更多关于 Unity 和
我可以使用 2D Perlin 噪声函数来生成高度值,但我不明白为什么要使用 3D Perlin 噪声函数。在 Notch's blog ,他提到在 Minecraft 上使用 3D Perlin 噪
我正在尝试实现我找到的一些源代码 online使用柏林噪声生成高度图。我已经成功地使用 Noise3 函数获取了高度图,其中第三个坐标是随机“种子”,以允许随机高度图。 我的问题是生成的地形相当沉闷
问题:我想使用具有自己样式的 google maps v3 地形图作为自己的 mapType。 我从这段代码开始: var mapOptions = { scrollwheel: false,
我在 Three.js 中开发了一个带有纹理散布的地形生成系统,但我无法对其应用法线贴图。我该怎么办?此代码目前功能齐全。 我查看了一些 WebGL 着色和法线贴图的教程,但找不到适合我的代码的教程。
我正在使用带有 VBO 和索引等的现代 OpenGL。 首先我从高度图加载地形,然后我把它分成 block (在我的例子中是 128x128)我将所有顶点加载到 VBO(对于每个地形 block )然
我有一个程序生成的 Terrain,它基于 Unity 的地形系统。 现在我想要一张来自Terrain 的Map,不是迷你 map 而是完整 map ,保存为2D Texture。 首先我想到了一个R
你好我可以同时将水变暗并更改为样式化 map ,以便重置其他值。我想要的是一张像 MapTypeId.TERRAIN 这样的绿色景观和深色水域的 map 。我可以设法让水变暗,现在也想要像 MapTy
我尝试使用以下代码将树木添加到我的地形中: // Create Trees for (int x = 0; x (); TreeInstance treeTemp =
我想使用 Mapbox 的 terrain-rgb 瓦片作为 Mapbox GL map 中的图层。我看到的操作 terrain-rgb 数据的示例使用 L.tileLayer 为新层构建图 bloc
我非常喜欢 Google map 的 Terrain map 类型。 但是 map 的默认背景不是绿色,我怎样才能把颜色变成黄色呢? 最佳答案 Terrain 没有黄色版本 map type .您可以
我正在使用 Libtcod 和 Python 构建一个回合制策略游戏。游戏 map 具有可变地形,每个方 block 可以是 5 种类型中的一种: 平原 - 移动成本 1 森林 - 成本 2 河流 -
我有一条随时间移动的路径。我使用 Cesium.sampleTerrain 获取位置高度并将它们覆盖在地形上。问题是,即使所有点都在地形上,连接 2 个点的线有时也会在地形下方。我怎样才能在地形上也覆
我目前的理解是,当用户将鼠标悬停在 map 按钮 (MapTypeId.ROADMAP) 上时,google maps api3 MapTypeId.TERRAIN 显示为一个复选框选项。我想把它分成
我正在尝试为我的地形映射的第一部分绘制一个三角形网格,但是有一个小错误,我不确定我哪里出错了。有人可以指出我的错误或解释如何正确构建此网格。 为了澄清,请查看网格的右侧,这不应该发生。 顶点: vec
使用这个 stackoverflow question ,我尝试将一些自定义样式应用于 Android map View 。 造型基本上就是把水弄黑 mapstyle_json.js: [ {
所以我创建了一些自定义 JSON 来使海洋呈现更饱和的蓝色,但现在似乎无法将 map 默认设置为 TERRAIN View ,它只是转到标准 ROADMAP View ,似乎无法正常工作为什么会这样,
我是一名优秀的程序员,十分优秀!