获取几何面上点的颜色
Get the color of a point on a geometry face
我正在使用THREE.js来渲染我的场景,我有一个棘手的问题-我如何才能获得几何面上特定点的颜色?
这里的颜色不是指面或材料颜色,而是指在特定点的实际输出颜色,基于:特定位置的材料、面颜色和纹理颜色。例如,如果给定点上的面部纹理是红色的,并且材料颜色是半可见的(alpha =0.5),我期望得到的是:(r=1.0, g=0.0, b=0.0, a=0.5)。
注意:性能很重要。
任何想法?谢谢!
一个简单直接的方法是使用<canvas>
。
var canvas = document.createElement( 'canvas' );
canvas.width = renderer.domElement.width;
canvas.height = renderer.domElement.height;
var context = canvas.getContext( '2d' );
context.drawImage( renderer.domElement, 0, 0 );
var imagedata = context.getImageData( 0, 0, canvas.width, canvas.height );
var data = imagedata.data;
var index = ( mousex + ( mousey * canvas.width ) ) * 4;
var red = data[ index ];
var green = data[ index + 1 ];
var blue = data[ index + 2 ];
var hex = red << 16 | green << 8 | blue << 0
enabled实际上你期望得到的不是真的。你没有考虑灯光。如果没有灯光,你的物体将是黑色的。有了灯光,根据光线的位置,你会得到不同的结果。即使你使用平面阴影,脸的颜色也会取决于它的正常值。
相关文章:
- 使用JS如何动态更改显示的html文件中的文本背景颜色
- 高亮显示时编辑文本大小和颜色
- 用与线条相同的颜色填充多折线图上的点
- 更改使用Chart.js创建的图表中的轴线颜色
- 如何使用jquery更改html中的背景颜色
- 动态更改高图中的系列颜色
- jsf中两个字符串的颜色代码差异
- 我们如何使用css或JavaScript在i/j上更改句点(点)的颜色
- d3.hexbin插件-动态定义颜色域以适应数据
- 我如何制作一个JS函数,它可以从相似的原始颜色双向更改为某个颜色
- 每个选择器的Jquery css颜色都在变化,但字体大小却没有变化
- Javascript对象类在单击时打开窗口进行颜色选择,并在更改时替换对象背景颜色
- jQuery动画-边框宽度和颜色
- JS幻灯片与CSS背景颜色变化
- 如何计算二十面体的法线
- 使用CSS/JavaScript更改剑道图工具提示文本颜色
- 使用Angular单击时更改特定图示符图标的颜色
- 如何使用D3生成特定范围内的随机颜色
- 改变立方体的一个面颜色- THREE.js
- 如何在three.js中使用morphColor来改变动画的面/顶点颜色