jjzjj

javascript - 三个JS : Text Sprite's font size difference between WebGL renderer and Canvas renderer

我正在使用三个JS来开发3d图形。我想将图表的单位显示为THREE.SPRITE。为了创建SPRITE,我首先创建了一个Canvas元素并向其中添加了文本。然后我用之前创建的Canvas元素创建了THREE.Texture。使用纹理作为贴图创建THREE.SpriteMaterial,然后使用此SpriteMaterial创建THREE.SPRITE。将此SpriteMaterial添加到场景中。当渲染器是THREE.WebGLRenderer的实例时,文本的大小非常小,而当渲染器是THREE.CanvasRenderer的实例时,文本的大小非常大.以下是我用来创建Sprite的代码。

javascript - WebGL 中的体绘制

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭5年前。Improvethisquestion我有:包含要显示的3d数据集的3D数组一个4x4矩阵,用于定义要显示的体积的间距/比例/方向不透明度传递函数颜色传递函数我想使用ThreeJS对该数据进行体积渲染(MIP、RayCasting等)。是否有一些可用的着色器/演示?我应该直接在着色器级别还是在javascript中工作?任何提示/代码示例将不胜感激,最好的

javascript - 使用 THREE.Frustum 计算近/远平面顶点

我需要一些帮助来处理THREE.Frustum对象。我的问题:我需要计算近/远平面顶点;我看过这些教程http://www.lighthouse3d.com/tutorials/view-frustum-culling/view-frustums-shape/http://www.lighthouse3d.com/tutorials/view-frustum-culling/geometric-approach-extracting-the-planes/我已经勾画出这个函数完全实现(我希望如此)所解释的过程(只是为了获得左上角/右上角的顶点,假设相机只能向左和向右看)://NearP

javascript - 三个 JS 透明度与 ShaderMaterial

我正在绘制两个相邻的几何体并让它们旋转。问题是第一个绘制的阻碍了第二个,透明度应该生效。这两个对象应该具有相同的透明度,无论谁先被绘制。这就是混合打开而深度测试关闭的原因。以下是图片:两个几何体都是使用THREE.ShaderMaterial的点云,如下所示:varshaderMaterial=newTHREE.ShaderMaterial({uniforms:uniforms,attributes:attributes,vertexShader:document.getElementById('vertexshader').textContent,fragmentShader:doc

javascript - 希望在 Javascript/WebGL 中访问 16 位图像数据

我正在尝试从服务器下载16位图像数据并将其推送到WebGL纹理中,而无需浏览器插件。texImage2d将使用:ImageData、HTMLImageElement、HTMLCanvasElement或HTMLVideoElement。我正在寻找一些可以将16位TIFF或类似(hdf5等)图像数据解码为这些对象类型之一的javascript(库或代码示例)。我可以通过使用an加载PNG来实现每channel8位RGB,但这不适用于每channel16位数据,因为没有任何“标准”浏览器支持的图像格式是16位的。 最佳答案 如果合并两个

javascript - Canvas 已通过本地 chrome ://extension URL 被跨源数据污染

我正在开发googlechrome扩展程序,我正在尝试将与扩展程序捆绑在一起的图像加载到Canvas中。varcanvas=document.createElement('canvas');canvas.width=470;canvas.height=470;varcontext=canvas.getContext('2d');varimage=newImage();image.addEventListener('load',function(){//process});image.src=chrome.extension.getURL("asset/gotcha.png");当我在内

javascript - 关于 WebGL 的一些问题

我正在学习OpenGL3.3并正在开发我的一个小型游戏引擎。但我探索得越多,感觉离线PC游戏可能有一天会过时。所有游戏都将在浏览器上运行。我也非常有兴趣将所有内容集成到浏览器中,只要它可以利用与任何其他非浏览器游戏相同的优势。经过一些研究后我发现,WebGL运行在HTML5的Canvas上。现在有几个问题,WebGL能否像非浏览产品一样利用PC的同样优势?它完全基于着色器?或者也支持已弃用(我不知道它是否在WebGL中也已弃用)固定功能渲染?由于我正在学习基于着色器的方法,所以我真的不想回到固定功能管道。或者我是否必须使用其他包装器(Copperlich或GLGE)来获得着色器支持?(

javascript - ImageUtils.loadTexture 与 Canvas 渲染器中的回调

我正在使用three.js修订版53在CanvasRenderer(Win7上的IE)中加载纹理并为onLoad事件添加回调时,纹理未显示。当我删除回调函数时,纹理会按预期显示://添加回调不工作varmaterial=newTHREE.MeshBasicMaterial({map:THREE.ImageUtils.loadTexture('text_build.png',{},function(){//dosomething})});varplane=newTHREE.Mesh(newTHREE.PlaneGeometry(135,135),material);plane.overd

javascript - TypeError Object[object object] 没有方法 SubSelf,TypeError Object[object object] 没有方法 intersectsPlane

在使用优秀的Sim.js和Three.js库处理WebGL项目时,我偶然发现了下一个问题:一路走来,它使用了THREE.Ray的下一个构造函数:varray=newTHREE.Ray(this.camera.position,vector.subSelf(this.camera.position).normalize());其中矢量为Vector3,这会触发以下错误:TypeErrorObject[objectobject]没有方法subSelf。我检查了我正在使用的Three.js的文档以及vector3上最接近这个的方法是.sub(v)Vector3我尝试更改此设置,但此调用出现了

javascript - WebGL 中的所有简单函数都去哪儿了?

glBegin/glEnd和使用glVertex逐顶点绘图我可以理解使用数组可以更快。但是glLoadIdentity在哪里?glMultMatrix?glTranslate?glRotate?为什么我们必须自己处理所有矩阵内容? 最佳答案 WebGL是一个OpenES2.0绑定(bind)。OpenGLES2.0(和现代OpenGL3.2+)没有这些弃用的函数,一切都必须在着色器和/或您自己的矩阵库中完成。好在WebGL有很多可用的矩阵库,其中最好/最快的是glMatrix(https://github.com/toji/gl-m