混音器系统是在r73中引入的,从那以后我一直在尝试将我的游戏更新到这个新系统.
除了一件事,我几乎都在那里.某些具有某些几何形状的动画的交叉渐变有一点延迟,这在r72中是不存在的.我攻击了r72的BlendCharacter和Animation功能以允许回调并且效果很好.在73中,如果通过事件触发器内置了此功能,则不需要这样做.
在下面的小提琴中,一切都按预期工作(r72).
http://jsfiddle.net/titansoftime/a93w5hw0/
<script src="http://www.titansoftime.com/webgl/Three72.full.js"></script>
<script src="http://www.titansoftime.com/webgl/BlendCharacter2.js"></script>
<script src="https://rawgit.com/mrdoob/three.js/dev/examples/js/loaders/DDSLoader.js"></script>
var scene, camera, renderer, ambient, directional;
var mesh, geoCache={};
var clock, jsLoader, ddsLoader;
init();
animate();
function init() {
scene = new THREE.Scene();
camera = new THREE.PerspectiveCamera( 45, window.innerWidth / window.innerHeight, 1, 10000 );
camera.position.z = 20;
camera.position.y = 10;
ambient = new THREE.AmbientLight(0xffffff);
scene.add(ambient);
directional = new THREE.DirectionalLight(0xffffff,1);
directional.position.set(1,1,0);
scene.add(directional);
clock = new THREE.Clock();
jsLoader = new THREE.JSONLoader(true);
ddsLoader = new THREE.DDSLoader();
renderer = new THREE.WebGLRenderer({antialias:true});
renderer.setSize( window.innerWidth, window.innerHeight ); …Run Code Online (Sandbox Code Playgroud) 我正在制作一个html5游戏www.titansoftime.com
我使用棘轮作为PHP websocket服务器解决方案.它很棒!http://socketo.me/docs/push
我已经使用php pthreads扩展进行了几次独立测试,并且看到了一些非常令人兴奋的结果.它确实有效并且运行良好..只要不包含websockets.
Pthreads提供PHP多线程功能(它确实有效,而且非常棒).http://php.net/manual/en/book.pthreads.php
这就是我做的:
/src/server.php这是启动守护程序的文件.
<?php
session_start();
use Ratchet\Server\IoServer;
use Ratchet\WebSocket\WsServer;
use MyApp\Pusher;
require __DIR__ . '/../vendor/autoload.php';
require_once __DIR__ . '/../mysql.cls.php';
require_once __DIR__ . '/../game.cls.php';
require_once __DIR__ . '/../model.cls.php';
$mysql = new mysql;
$game = new game;
$loop = React\EventLoop\Factory::create();
$pusher = new MyApp\Pusher();
$loop->addPeriodicTimer(0.50, function() use($pusher){
$pusher->load();
});
$webSock = new React\Socket\Server($loop);
if ($loop instanceof \React\EventLoop\LibEventLoop) {
echo "\n HAS LibEvent";
}
$webSock->listen(8080, '0.0.0.0'); // Binding to 0.0.0.0 means remotes can connect
$webServer …Run Code Online (Sandbox Code Playgroud) 根据three.js github上的各种帖子,MeshFaceMaterial最终将不推荐使用。
我目前将此用于我的地形。当然,这不是最好的方法。其实它很烂。对于一个我不能使用的情况BufferGeometry,考虑到我通常有两层128x128(分段的)用于地形的平面,因此我不能使用它。内存使用率很高。
我修改了我所有的代码,以使地形成为可能,BufferGeometry但有两点无效。MeshFaceMaterial和BufferGeometry.merge()。考虑到三个创建了该几何体,合并对索引的几何体不起作用,但我认为这很奇怪,但是它可以合并来自Blender的未索引的几何体。它无法合并自己创建的几何图形,但可以合并来自外部源的几何图形...哦,那是另一篇文章,回到MeshFaceMaterial。
我目前使用的是128x128的“ MaterialMap”。每个像素代表materialIndex平面的每个面。这有两个严重的缺点。地形的平方部分(无曲线)和纹理边界的严格区分。
我的问题是:如何在不使用的情况下生成具有多个纹理的地形MeshFaceMaterial。我拥有的最高分辨率纹理为2048x2048,区域大小可以轻松为10000x10000,因此有必要重复(对吗?)。
最终,我的目标是使用BufferGeometry和摆脱MeshFaceMaterial。
MaterialMap示例:
地形示例(非常抱歉{work pc}): 
我一直在使用WebGL库Three.js开发游戏引擎.我有基本的地形碰撞工作,我可以找到用户站在的脸.使用面顶点的平均或最大Y位置是不够的.
我可以使用什么公式来找到物体相对于"站立"的地形面的确切Y位置?假设我知道面部四个顶点位置和对象矢量位置.

飞机是一个THREE.PlaneGeometry(2000,2000,128,128),由高度图增强.上面的图像是其中一个面孔.
我正在开发一种游戏,其中有许多相同纹理但不同长度/高度的墙壁.目前,我正在克隆基础纹理并为每个墙设置重复值.这会在内存中创建许多纹理.
我想要做的是改变平面uvs以适应纹理.我对此进行了一次尝试,得出了一些结果.
var X = 2000;
var Y = 1000;
var seg = Math.ceil(X/Y);
var wallgeo = new THREE.PlaneGeometry(X,Y,seg,1);
var uvs = [];
for(var i=0,len=wallgeo.faces.length;i<len;i+=2){
uvs.push([new THREE.Vector2(0,1),new THREE.Vector2(0,0),new THREE.Vector2(1,1)]);
uvs.push([new THREE.Vector2(0,0),new THREE.Vector2(1,0),new THREE.Vector2(1,1)]);
}
wallgeo.faceVertexUvs = [uvs];
wallgeo.uvsNeedUpdate = true;
var walltex = DDSLoader.load('materialmaptextures/21_2048.dds');
var wallmat = new THREE.MeshPhongMaterial({map:walltex, transparent:true, wireframe:false});
wall = new THREE.Mesh(wallgeo,wallmat);
wall.position.set(0,Y/2,-300);
scene.add(wall);
Run Code Online (Sandbox Code Playgroud)
你可以告诉我的问题是,为了创造一个额外的面孔,这不是一个大问题,但我真的想避免这种情况.最重要的是,如果平面长度不能被其高度整除,则纹理将拉伸/压缩.此外,其中的平面高度段是固定的,从而导致限制.
我不太关心创建额外的面孔.这有必要吗?一个人的脸可以每个三角形有多个紫外线吗?它需要吗?
我不熟悉Uv的问题,必须有一种有效的方法让我的墙壁看起来不荒谬而不会炸毁记忆,对吧?
three.js ×4
textures ×2
collision ×1
game-engine ×1
javascript ×1
math ×1
php ×1
pthreads ×1
ratchet ×1
shader ×1
terrain ×1
uv-mapping ×1
websocket ×1