[]VR的demo有没有加载3D场景的啊,实在不知怎么加

VR的demo有没有加载3D场景的啊,实在不知怎么加,用u3d导出的场景,怎么才能用VR功能?不要实景那个demo
已邀请:

wqf196

赞同来自:

我说的是添加场景啊,不是添加模型,你给的demo是通过添加每一个模型来堆砌成一个场景的,这样太麻烦了,项目中这样做不实际

wqf196

赞同来自:

还有我用已经可以导入的场景模型,按照官方demo的代码加上去,一加载就黑屏,怎么回事呢? 用传统相机可以看得到场景的,用VR就成黑屏了,连天空都看不到, 附件有场景模型文件


Laya3D.init(0, 0,true);
Laya.stage.scaleMode = Laya.Stage.SCALE_FULL;
Laya.stage.screenMode = Laya.Stage.SCREEN_HORIZONTAL;
Laya.Stat.show();
//var scene = Laya.stage.addChild(new Laya.Scene.load("cj02/LastHopeScene.ls"));
var scene = Laya.stage.addChild(new Laya.Scene());
var camera = scene.addChild(new Laya.VRCamera( 0.03,0, 0, 0.1, 100));
camera.transform.translate(new Laya.Vector3(0.3, 0.3, 0.6));
camera.transform.rotate(new Laya.Vector3(-12, 0, 0), true, false);
camera.clearFlag = Laya.BaseCamera.CLEARFLAG_SKY;
camera.addComponent(VRCameraMoveScript);
/*
var camera = (scene.addChild(new Laya.Camera()));
camera.transform.translate(new Laya.Vector3(93, 64, -33));
camera.transform.rotate(new Laya.Vector3(0.05, 155, 0), true, false);
camera.clearColor = null;
camera.clearFlag = Laya.BaseCamera.CLEARFLAG_SKY;
camera.addComponent(CameraMoveScript);
*/
var skyBox = new Laya.SkyBox();
skyBox.textureCube = Laya.TextureCube.load("res/sky/skyCube.ltc");
camera.sky = skyBox;

var sprite3D = scene.addChild(Laya.Sprite3D.load("cj03/LastHopeScene.lh"));
//sprite3D.transform.localScale = new Laya.Vector3(0.2, 0.2, 0.2);
sprite3D.once(Laya.Event.HIERARCHY_LOADED, null, function(sprite) {
//console.log(scene.numChildren+","+sprite._childs.length);
setMeshParams(sprite, Laya.StandardMaterial.RENDERMODE_OPAQUE, new Laya.Vector4(3.5, 3.5, 3.5, 1.0), new Laya.Vector3(0.6823, 0.6549, 0.6352), new Laya.Vector2(25.0, 25.0), "TERRAIN");
//setMeshParams(sprite, Laya.StandardMaterial.BLENDEQUATION_REVERSE_SUBTRACT, new Laya.Vector4(3.5, 3.5, 3.5, 1.0), new Laya.Vector3(0.6823, 0.6549, 0.6352), new Laya.Vector2(25.0, 25.0), "TERRAIN");
});
function setMeshParams(spirit3D, renderMode, albedo, ambientColor, uvScale, shaderName) {
if (spirit3D instanceof Laya.MeshSprite3D) {
var meshSprite = spirit3D;
var mesh = meshSprite.meshFilter.sharedMesh;
if (mesh) {
//可采用预加载资源方式,避免异步加载资源问题,则无需注册事件。
for (var i = 0; i < meshSprite.meshRender.sharedMaterials.length; i++) {
var mat = meshSprite.meshRender.sharedMaterials[i];
var transformUV = new Laya.TransformUV();
transformUV.tiling = uvScale;
(shaderName) && (mat.setShaderName(shaderName));
mat.transformUV = transformUV;
mat.ambientColor = ambientColor;
mat.albedo = albedo;
mat.renderMode = renderMode;
}
}
}
for (var i = 0; i < spirit3D._childs.length; i++){
setMeshParams(spirit3D._childs[i], renderMode, albedo, ambientColor, uvScale, shaderName);
}
}
 

wqf196

赞同来自:

我单独使用一个模型又是可以的

183*****755

赞同来自:

laya中,3d跟vr的唯一区别就是使用相机的区别,3d使用camera,vr使用vrcamera。
vr模式建议用移动端浏览,如果给vr相机添加了VRCameraMoveScript组件,会使用移动端的陀螺仪功能,pc不支持。

wqf196

赞同来自:

不是这么回事,肯定是引擎代码逻辑出错了,同样的一个场景,一个有显示,一个黑屏,注意是黑屏,不是所谓的镜头视觉问题,用手机跟电脑试都一个结果,场景文件我都已经发上来了的

183*****755

赞同来自:

我这边测试了你的资源,完全没有问题。这样,先确定是引擎的问题还是镜头的问题,你先把相机切换到正常的3d相机,运行,看程序是否报错。在3d情况下调试如果没有问题,再切换至vr相机。

要回复问题请先

商务合作
商务合作