问题标签 [skybox]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - OpenGL 中的天空盒
我正在为 OpenGL 中的天空盒制作环境贴图,但遇到了纹理问题。我的代码会生成我要映射的纹理图块,而不是一个大纹理。瓷砖也失去了大部分分辨率并且非常小。
这是我的代码:
javascript - 分配给相机的three.js天空盒
我正在尝试将天空盒分配给玩家相机。当相机移动(天空盒也随之移动)时,纹理会被拉伸。如何摆脱这个?
代码:
opengl - 我的代码无法将图片正确加载到 opengl
我尝试将六张图片加载为纹理并绘制一个天空盒,但结果很奇怪,每张图片在其对应的灰色矩形上映射了三次。问题是什么?
directx-9 - 在 DirectX9 中未显示 Skybox 纹理
我正在尝试使用固定功能管道(没有着色器或效果文件)在 DirectX9 中渲染天空盒。我可以查看立方体渲染。当我设置纹理时,所有的脸都被涂上了一种奇怪的颜色(不是白色或空白)。纹理文件是正确的立方体贴图。我认为某些纹理设置未设置。下面是代码片段
// for creating the cube and the cube texture
HRESULT apiResult = D3DXCreateBox(g_pd3dDevice,1,1,1,&g_pMesh,NULL);
apiResult = D3DXCreateCubeTextureFromFile(g_pd3dDevice,L"cubeMap.dds",&g_pTexture);
两个 API 都返回 S_OK。
// for renderin the skybox
g_pd3dDevice->SetSamplerState(0,D3DSAMP_MIPFILTER,D3DTEXF_LINEAR);
g_pd3dDevice->SetSamplerState(0,D3DSAMP_MAGFILTER,D3DTEXF_LINEAR);
g_pd3dDevice->SetSamplerState(0,D3DSAMP_MINFILTER,D3DTEXF_LINEAR);
// set texture
g_pd3dDevice->SetTexture(0,g_pTexture);
// Begin the scene
if( SUCCEEDED( g_pd3dDevice->BeginScene() ) )
{
g_pMesh->DrawSubset(0);
g_pd3dDevice->EndScene();
}
// Present the backbuffer contents to the display
g_pd3dDevice->Present( NULL, NULL, NULL, NULL );
缺少哪个设置?
java - LWJGL:更有效的渲染天空盒的方法
我目前正在渲染一个这样的天空盒:
这似乎是一种非常低效的渲染天空盒的方法,因为我必须不断在纹理和四边形之间切换。此外,像这样渲染四边形往往会归因于视觉伪影,例如单像素线(四边形之间的接缝)。我听说过使用立方体贴图来提高效率,但我在努力实现。如果你们有任何建议,请随时指出我正确的方向。谢谢。
c++ - 模糊的天空盒纹理
渲染天空盒时出现问题。我正在使用带有 c++ 的 DirectX 11。图片太模糊了。我想我可能使用了太低分辨率的纹理。目前对于天空盒的每个面,分辨率都是 1024x1024。我的屏幕分辨率是 1920x1080。平均而言,我会一直盯着天空盒的一张脸,这意味着 1024x1024 的图片将被拉伸以填满我的屏幕,这就是它模糊的原因。我正在考虑使用 2048x2048 纹理。我创建了一个简单的天空盒纹理,它不再模糊了。但我的问题是它需要太多的内存!几乎 100MB 仅用于后台加载到 GPU。
我的问题是有没有更好的方法来渲染天空盒?我在互联网上环顾四周,没有太多运气。有人说标准是每张脸 512x512。那么模糊是不可接受的。我想知道商业游戏是如何制作天空盒的?他们是否使用了巨大的纹理尺寸?尤其是看过的人,我特别喜欢《死亡空间3》的空间环境。我想创造类似的东西。那么他们是怎么做到的呢?
android - 天空盒中的模糊?
我用以下课程制作了一个天空盒,图像在天空和草地的某些部分变得模糊,我试图弄清楚如何修复它,谢谢你的时间。
c++ - 使用 opengl c++ 的天空盒问题
我正在尝试使用天空盒创建太阳系的背景;但是它没有输出我想的那样。
首先是显示问题。下面的图片显示了我遇到的问题。
不同的角度:
另一个角度:
如您所见,纹理仅映射到立方体的一侧。如果它被映射到的一侧是内侧,那就没问题了。我不明白为什么它没有正确映射。
第二个问题是(从图片中可以看出)当我旋转相机时,盒子也随之旋转,当我缩小时,我可以看到整个盒子。我希望盒子始终留在背景中,并且只能放大/缩小我的太阳系。这样,星星总是在背景中。我不知道如何完成它。
这是我用来渲染天空盒和太阳系的代码。(请记住,太阳系按我的预期工作)
这是天空盒的代码:
这是太阳系的代码:
c++ - 如何使用openGL正确定位天空盒相机
我为我的项目创建了一个天空盒,它看起来像我想要的那样;但是,有一些问题我不知道如何解决,我已经阅读了一些关于这个主题的教程,但我找不到对我有帮助的东西。第一个问题是我不知道如何让盒子总是随着我的相机移动。在下图中,您可以看到我可以缩小并看到整个盒子,而不是只放大/缩小太阳系并始终在背景上显示星星。
我遇到的另一个问题是,当我放大得太近时,我的背景消失了。下图说明了我的意思
我知道如果我能让相机正常工作,我可以解决这个问题,但这又回到了我的第一个问题。我不知道如何访问相机信息。
我相信我必须将我的代码从固定数字修改为随相机位置而变化的数字glTranslatef()
。glScalef()
这是我的代码:
如何访问这些变量?openGL 是否已经有一个功能可以解决这个问题?
glkit - 如何使用 GLKTextureLoader 从 web url 加载立方体贴图
不确定如何使用从网络加载的图像作为 GLKit 天空盒中的资产(如旧的苹果/谷歌地图街景) 使用 GLKTextureLoader 加载立方体贴图有两种方法:cubeMapWithContentsOfFile和cubeMapWithContentsOfUrl
如果我在本地抓取图像,它可以正常工作:
那么有没有办法从从网络加载的图像中获取路径并在这里使用它?