ray

高性能最终一致性框架Ray之基本概念原理

前提是你 提交于 2019-12-04 21:02:22
高性能最终一致性框架Ray之基本概念原理 一、Actor介绍 Actor是一种并发模型,是共享内存并发模型的替代方案。 共享内存模型的缺点: 共享内存模型使用各种各样的锁来解决状态竞争问题,性能低下且让编码变得复杂和容易出错。 共享内存受限于单节点的服务器资源限制。 Actor模型的优点: 线程之间以消息进行通信,消息按顺序单线程处理,不存在状态竞争。 以消息方式通信,可以方便的组建集群。 把State和Behavior绑定,能更好的控制状态。 名词解释: Mailbox:可以理解为先入先出队列,负责接收和缓存送达的消息。 State:状态信息,比如用户的账户余额信息。 Behavior:负责按顺序处理Mailbox中的消息,比如扣款消息、到账消息,查询余额消息等。 二、Orleans介绍 Orleans是.Net基金会维护的一个Actor跨平台开源框架,独创Virtual Actor概念,支持分布式集群。 项目地址: http://dotnet.github.io/orleans/ 有以下优点: 以对象方式访问Actor,符合面向对象的使用习惯。 提出Virtual Actor概念,可以通过ID访问细粒度的Actor,能承载数千万的Actor对象。 支持Stateful,能替代缓存层来对内存状态进行更精确的控制,减少数据库的压力。 高性能,单个Actor能支持10万+的QPS。

openGL ray pick

匿名 (未验证) 提交于 2019-12-03 08:57:35
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试): 由 翻译 强力驱动 问题: The general Ray picking process should be as follows(experiment result proved to be right): transform screen point to normalized device space direction vector: float x = ( 2.0f * mouse_x ) / width - 1.0f ; float y = 1.0f - ( 2.0f * mouse_y ) / height ; float z = 1.0f ; vec3 ray_nds = vec3 ( x , y , z ); transform direction vector to Homogeneous Clip Coordinates vec4 ray_clip = vec4 ( ray_nds . xy , - 1.0 , 1.0 ); transform direction vector to eye space direction vector vec4 ray_eye = inverse ( projection_matrix ) * ray_clip ;

Three.js Projector and Ray objects

匿名 (未验证) 提交于 2019-12-03 02:15:02
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试): 问题: I have been trying to work with the Projector and Ray classes in order to do some collision detection demos. I have started just trying to use the mouse to select objects or to drag them. I have looked at examples that use the objects, but none of them seem to have comments explaining what exactly some of the methods of Projector and Ray are doing. I have a couple questions that I am hoping will be easy for someone to answer. What exactly is happening and what is the difference between Projector.projectVector() and Projector.unprojectVector(

Is this plane-ray intersection code correct?

匿名 (未验证) 提交于 2019-12-03 01:34:02
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试): 由 翻译 强力驱动 问题: My Plane class has two fields: public Vector3 Norm ; //normal vector public double Offset ; //signed distance to origin This is the code I use for intersection, and I don't know if it is correct. I double checked my equations and everything, but I would like to get feedback from people more experienced with this. public override Intersection Intersect ( Ray ray ) { // Create Intersection. Intersection result = new Intersection (); // Find t. double t = - ( Vector3 . Dot ( Norm , ray . Start ) + Offset ) / ( Vector3 . Dot ( Norm ,

《Ray Tracing From The Ground Up》Chapter3

匿名 (未验证) 提交于 2019-12-03 00:29:01
Bare-Bones Ray Tracing 这一章内容是写一个最简单的光线追踪器,我们trace plane 和 sphere 就可以了。 本篇文章主要是整理代码结构,具体图形学知识一定要看书,书上讲的很清楚。 本章的光线为平行光,起点都在viewplane,方向为z轴负方向。我们把要trace的物体放在viewplane后面。显示被光线击中并且离viewplane最近的物体的颜色。 本书作者给的代码实现中包含了很多类,所以理解起来有点困难。并且因为作者给的代码不能直接运行(编译会报错),我重新按照作者的结构实现了一下,不过去掉了Point3D这个类,所有三维的点都用Vector3D表示。输出的图像为PPM格式,代码运行环境为Archlinux,没在windows环境下测试过。 在此整理一下我的代码结构: 首先看下有main的主代码: #include "World.h" #include <fstream> #include <iostream> using namespace std; ofstream out; int main() { out.open("fileppm.ppm", ios::out); out << "P3\n" << 400 << " " << 400 << "\n255\n"; World w; w.build(); w.render_scene()

Unity HTCVR 设备手柄控制

雨燕双飞 提交于 2019-12-02 16:37:48
using System.Collections; using System.Collections.Generic; using UnityEngine; using HTC.UnityPlugin.Vive; using UnityEngine.SceneManagement; public class HandFunction : MonoBehaviour { public static HandFunction hand_function; public GameObject RightRay; public bool Ray_bool; //射线开关 public bool Ray_Canvas; //ui开关 private void Awake() { hand_function = this; } void Start() { RightRay.SetActive(false); Ray_Canvas = false; } void Update() { PressMenuKey(); PressTriggerKey(); PressGripKey(); } /// <summary> /// 按下应用键 /// </summary> void PressMenuKey() { if (ViveInput.GetPressDown(HandRole

Cesium 1.50重量级新功能测评

不想你离开。 提交于 2019-12-02 13:58:55
概要 既Cesium 1.49中3dtile加载性能大幅提升以后,Cesium 1.50再次迎来几个重量级新功能: 1 地球裁切,这下相当于可以截取一部分地形影像数据,当作一个平面场景来用了! 2 射线求交,为客户提供了进行通视分析和碰撞检测的可能! 3 贴地高度获取,为标签等位置的放置提供了依据。 4 地面大气效果,地球效果更加好看,算是弥补了长久以来的短板吧。。 Cesium 1.50又新增加了如下几个示例,以下分析也是根据这几个示例来的。 地面大气效果(Ground Atmosphere) Cesium 1.50版新增了这个属性:globe.showGroundAtmosphere,默认为true,也就是默认开启了地面大气效果。地面大气效果如下: 而1.50版以前的效果大概是这个样子: 关键代码: 另外,Cesium老早之前就有一个scene.skyAtmosphere,用来控制大气效果了。不过这个只能控制相机在近地面时抬头看天的效果。Cesium中还有一个叫 Atmosphere Color 的示例,就是演示scene.skyAtmosphere的用法。 地球裁切(Cartographic Limit Rectangle) 这个示例可以用来裁切地球,效果如下图所示: 这是一个激动人心的效果!老早之前就有客户一直抱怨不想要地球,只想看平面,但是平面又涉及到拉伸变形的问题

高性能最终一致性框架Ray之基本概念原理

不羁岁月 提交于 2019-11-30 07:37:19
一、Actor介绍 Actor是一种并发模型,是共享内存并发模型的替代方案。 共享内存模型的缺点: 共享内存模型使用各种各样的锁来解决状态竞争问题,性能低下且让编码变得复杂和容易出错。 共享内存受限于单节点的服务器资源限制。 Actor模型的优点: 线程之间以消息进行通信,消息按顺序单线程处理,不存在状态竞争。 以消息方式通信,可以方便的组建集群。 把State和Behavior绑定,能更好的控制状态。 名词解释: Mailbox:可以理解为先入先出队列,负责接收和缓存送达的消息。 State:状态信息,比如用户的账户余额信息。 Behavior:负责按顺序处理Mailbox中的消息,比如扣款消息、到账消息,查询余额消息等。 二、Orleans介绍 Orleans是.Net基金会维护的一个Actor跨平台开源框架,独创Virtual Actor概念,支持分布式集群。 项目地址: http://dotnet.github.io/orleans/ 有以下优点: 以对象方式访问Actor,符合面向对象的使用习惯。 提出Virtual Actor概念,可以通过ID访问细粒度的Actor,能承载数千万的Actor对象。 支持Stateful,能替代缓存层来对内存状态进行更精确的控制,减少数据库的压力。 高性能,单个Actor能支持10万+的QPS。 激活透明,Actor对访问者是永久存在的

百度地图WEB端判断用户是否在网格范围内

£可爱£侵袭症+ 提交于 2019-11-29 23:43:42
在pc端设置商家的配送范围,用户在下单时,根据用户设置的配送地点判断是否在可配送范围内,并给用户相应的提示。 下面说下我的实现思路: 1.用百度地图在PC端设置配送范围,可拖拽选择 2.根据用户设置的配送地址判断是否在配送范围内 一、百度地图PC端获取范围 改动百度地图官网的demo,设置配送范围。 思路:获取多边形的顶点,以json的形式保存到数据库。 百度API关于多边形覆盖物: 构造函数: Polygon(points:Array[, opts:PolygonOptions]) 创建多边形覆盖物 方法: setPath(path:Array) none 设置多边型的点数组(自1.2新增) getPath() Array 返回多边型的点数组(自1.2新增) 实现: //设置配送范围 function setRange(_point, _ppoints) { var polygon = new BMap.Polygon(_ppoints, { strokeColor: "blue", strokeWeight: 2, strokeOpacity: 0.5 }); //创建多边形 map.addOverlay(polygon); //增加多边形 polygon.enableEditing(); //允许编辑 polygon.addEventListener("lineupdate"