「java纹理贴图」纹理贴图素材
本篇文章给大家谈谈java纹理贴图,以及纹理贴图素材对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
3D游戏开发的问题,懂的再来~~~~~
开发3D游戏所要使用的东西主要有:
1、模型;3D游戏使用的模型大多是用3D Max、Maya设计的。
2、纹理贴图;有了模型并不能完美的表现出物体、人物的形态、面貌,还必须为这些模型加上蒙皮(也就是纹理)才能更好的表现细节、增强真实感。纹理贴图通常使用的工具是PS。(其实任何绘图工具都能使用,只不过PS功能丰富)
3、游戏剧本;这个就是游戏的内容,一般是使用某种脚本语言来设计(比如:Python)。
4、游戏引擎。这个是游戏的关键,所有的游戏视觉效果都是通过它展现的。前面提到的模型和贴图也是为引擎准备的。可以说,引擎的好坏决定游戏的表现力。游戏引擎就是你所说的“后台代码”(通常不会这么说,你的说法估计是借鉴网页开发的吧:-)),一般使用C++开发,其实任何语言都可开发,只是我们通常会选择速度快、效率高的语言来设计,因为,游戏程序是很讲求速度的:-)
引擎可以自己开发,也可以使用第三方现成的,这取决于你自己。
java3d 贴图只有颜色,没有纹理
TriangleStripArray tri = new TriangleStripArray(44,TriangleStripArray.COORDINATES|TriangleStripArray.COLOR_3,sCount);
这句规定了只有颜色(TriangleStripArray.COLOR_3),而不是用贴图。所以后面有关贴图的语句写了也没用。
可以改成类似以下的语句,
TriangleArray tri = new TriangleArray(24, TriangleArray.COORDINATES| TriangleArray.TEXTURE_COORDINATE_2);
float[] texCoord = { 0.0f, 0.0f,1.0f, 0.0f,......}
tri.setTextureCoordinates(0,0, texCoord);
......
注意是texCoord是贴图的坐标,就是规定贴图如何贴到几何平面上。
相关内容网上不少,搜下就好
java3d 如何实现水效果
抖动纹理或者变更模型。前者比较简单但效果一般,后者比较耗时,但在好的机器上效果明显。
另外,PC游戏一般采取前者。
抖动纹理就是变更贴图的坐标,使得在前一个方块的纹理好像移动到了这个方块,然后继续移动,到尽头的时候复原坐标,就可以实现好像波浪向前移动的效果。
变更模型就是动态改变各个面的顶点位置,需要比较深的数学及物理知识才能让水的动作变得自然。这种操作的开销是巨大的,一般的家用级显卡承受不起,但效果非常的好。比如FF最终幻想系列的水,都是变更模型的,但是也都是用服务器级别的机器渲染的。
另外,最好的方法是折衷的:设定一点点小纹理,加上合适的alpha值,用光照一下,在用那么十来个面,就可以达到家用级别的最好的水效果。
[SceneKit]Materials纹理贴图(七)
在OpenGL ES 中, 使用纹理贴图的方式来给一个物体模拟现实的材质, 让几何物体看起来更逼真, 但是在OpenGL ES中使用起来是超级麻烦. SceneKit中用来显示纹理就方便多了, 最起码它是面向对象的.
SceneKit支持四种不同的照明模型,它们定义将不同材质的属性与场景中的灯组合的数学方程,以产生每个渲染像素的精确最终颜色。在 [SceneKit]光线(五) 介绍了四种不同的光, 这个是四种不同的光照模型, 不要搞混了?
以下是每个模型的详细信息:
Materials通常被称为纹理; 他们可以让您在场景中引入更多的细节和现实感,而不需要更多的几何体。
纹理基本上是平面的二维图像,包裹3D几何,使用几何中存储的特殊纹理坐标。其实就是3d图像的每个点都与对应的2d纹理之间有一个一一对应的映射关系, 把这个映射关系做好之后, 剩下的就是把2d图像贴在3d几何上面就OK了.
最常用的纹理映射方法。它将位图图像包裹在3D几何表面上,同时显示其原始像素颜色。
漫反射贴图在游戏中表现出物体表面的反射和表面颜色。换句话说,它可以表现出物体被光照射到而显出的颜色和强度。我们通过颜色和明暗来绘制一幅漫反射贴图,在这张贴图中,吸收了比较多的光线的部分比较暗,而表面反射比较强的部分,吸收的光线比较少。
刨去那些杂糅的东西,我们只谈明显的,漫反射贴图表现了什么? 列举一下,物体的固有色以及纹理,贴图上的光影。前面的固有色和纹理我们很容易理解,至于后面的光影,我们再绘制漫反射贴图的时候需要区别对待,比如我们做一堵墙,每一块砖都是用模型做出来的,那么我们就没有必要绘制砖缝,因为这个可以通过打灯光来实现。可是我们如果用模型只做了一面墙,上面的砖块是用贴图来实现,那么就得绘制出砖缝了。从美术的角度,砖缝出了事一条单独的材质带外,还有就是砖缝也是承接投影的,所以在漫反射图上,绘制出投影也是很有必要的。
没有什么物体能够反射出跟照到它身上相同强度的光。因此,让你的漫反射贴图暗一些是一个不错的想法。通常,光滑的面只有很少的光会散射,所以你的漫反射贴图可以亮一些。
法线贴图是一种凹凸贴图。它们是一种特殊的纹理,可以让您将一些表面细节(如凸起,凹槽和划痕)添加到模型中,如同它们由实际几何体所代表的那样。
例如,您可能希望显示一个表面,如表面上有凹槽,螺钉或铆钉,如飞机船体。这样做的一个方法是将这些细节建模为几何,。
将法线贴图视为定义几何凹凸的纹理; 您可以使用它来模拟粗糙的表面,如月球表面的凹坑,雕刻在古老的石片上,或者甚至是闪亮的足球上的凸起的斑块和皮革图案.
Diffuse map只有基础的颜色纹理, Normal map只有基础的使用光线来表示几何物体反射光线的多少(因为我们人眼看到的东西是基于反射光, 如果有反射光进入眼睛就能看到, 否则则看不到), 要想既有颜色又有光亮与阴暗, 可以试下把二者结合
如果你想生成你自己的法线贴图,有一个叫做 CrazyBump 的工具。 你可以在crazybump.com找到它。
在开始了解反射贴图之前, 需要先了解下多维数据集(cube mapping)映射的概念。 你知道一个立方体由六面组成。 类似地,立方体地图由六个相同大小的纹理组成,全部包含在用于纹理多维数据集的所有边的一个大图中。
场景套件使用以下模式来定义多维数据集地图,其中每个图块表示多维数据集的特定一面:
使用多维数据集贴图的好处是您可以定义对象的细节; 您的对象的反射性决定了这种反射有多少将是可见的。 例如,一个镜面完成将使您的对象高度反光,并产生镀铬效果。
与前面的Diffuse map和Normal map贴图不同的是, 前面两者是把一张2维图片包裹在3维几何物体表面, 而Reflective map 则是使用cube mapping的方式把原始的2维图像映射到3维物体之上, 更像是含有颜色的影子.
Occlusion map用于提供关于模型的哪些区域应该接收高或低间接照明的信息。间接照明来自于环境照明和反射,因此您的模型如陡峭的凹陷部分,如裂纹或折痕,实际上不会接收太多的间接光。
当它做得很好时,遮挡效应会给场景带来很多现实感。 对于复杂的几何形状,几何形状的部分将阻挡来自几何的其他点的环境光,例如球的斑块周围的深脊:
应用遮挡图之前和之后。部分被遮蔽的区域,特别是在脖子上的织物褶皱处,在左边太亮了。在分配了环境遮挡图之后,这些区域不再被来自周围树木环境的绿色环境光照亮。
镜面贴图控制几何的光泽。 贴图的黑色部分定义了哑光部分,而白色部分则表示光泽效果
控制从表面发出的光的颜色和强度。当您的场景中使用发光材料时,它似乎是可见的光源。该物体将出现“自发光”。
发光材料通常用于某些部件似乎从内部照亮的物体上,例如显示器的屏幕,高速制动的汽车的盘式制动器,控制面板上的发光按钮或者怪物的眼睛,在黑暗中可见。
使用这些材料的对象即使在场景中的黑暗区域也会保持亮起。
红色,绿色和蓝色球体使用发光材料。即使它们处于黑暗的场景,它们也从内部光源发光。
所有其他效果后应用乘法图; 它可以用于着色,变亮或变暗的最终结果:
透明度贴图使您几何的几何透明,甚至完全不可见。 黑色部分定义不透明部分,而白色部分最终为透明的部分。像PS一样
关于java纹理贴图和纹理贴图素材的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
发布于:2022-11-22,除非注明,否则均为
原创文章,转载请注明出处。