好-纹理和材质区别总结

ue4----------理论(5.材质) 常量。 阅读详情

好久不研究图形学的东西了,但一直放不下,今天闲下来复习了一下,搜集了一些材质和纹理区别的文章,总结一下,以便后看。

我的理解是:纹理更偏向于“图”,而材质更偏向于“属性”。
打个比方说,对同一个立方体模型进行处理:
加纹理信息,可以认为是贴上图,比如木头的纹理图,大理石的纹理图。
加材质信息,可以认为是为这个立方体加上属性(这些属性主要是指反射系数、折射系数等),比如木头的属性或大理石的属性。

从另一个角度来看,加了纹理的模型是静态的和表面的,不会因为外界环境变化而变化(比如光照)。但是加了材质的模型是动态的和本质的,当外界环境变化的时候能做出相应的变化,所以更真实。

最简单的例子就是,我们可以做出有木头光泽的大理石模型,有大理石光泽的木头模型,有木头光泽的木头模型,有大理石光泽的大理石模型。在上面的描述中,有“什么光泽”的“什么”,这是材质信息;“什么模型”的“什么”,这是纹理信息。
说了那么多,具体的只能自己体会啦。这也只是我个人的理解,:)

一般在CG中,“材质”(Material)指的其实是颜色,准确的说,指的是物体表面对射到表面上的色光的RGB分量的反射率。通常材质都包括环境光、漫射光、镜面光和自发光等成分,指的就是对不同的光线,不同颜色分量的反射程度。
“纹理”(texture)指的是位图,把一张图贴到一个表面上去,实际是摹拟了自然事物的漫射材质。因为材质一般只对顶点指定,你不可能对这个平面上的每个像素都指定一种材质。纹理其实就是起这个作用,相当于对这个平面上的每个像素都指定了不同的漫射材质。
不知道我的解释你明白了没有?
其实说穿了,材质和纹理都只是“颜色”而已。

“物体表面的颜色”,这种说法似是而非。物体表面哪来的颜色?
我们看到树是绿的,花是红的,只不过是因为树叶表面反射G分量最强而RB分量被吸收;花表面反射R分量最强而GB分量被吸收而已。说到底,物体的颜色都是外界给的,颜色并不是物体本身的属性。对RGB分量的反射率才是物体本身的属性。
你当然可以说“石膏是白的”,但把石膏放在红色灯下,石膏也就成了红的。你只能说“石膏在白色光下是白的”——这不是一句废话吗?
纹理实际上是对漫反射率的一个摹拟,准确的说,纹理摹拟的是物体表面在白色漫射光照下,各点的反射率。而材质反映的是物体在环境光、漫射光、直射光甚至自发光照射下的反射率,仅此而已,没有什么内部外部,本质表象的。

 

一个经典的比喻就是:

同样的花纹印在纸上和布上的效果会不一样,
为什么效果不同?因为布和纸对光线的反射不一样
在这个例子中,花纹就是纹理,布和纸就是材质

实质上,纹理给出物体表面各点的颜色值,而材质则描述表面与光线相互作用的特性,也就是说光线在这种材质的表面遵循什么样的行为规律。

 

补充一个个人入门学习3D的一个疑问:

材质为什么不作为顶点数据结构的一个成员,而是作为渲染状态被单独指定(或作为着色器使用的常量)?

按理说,材质作为顶点的一个固有属性,作为顶点数据结构的一个成员是无可厚非的,就像顶点的纹理坐标或者法向量成员一样。其实原因是因为为了更有效的利用内存,因为通常情况下,一堆三角形顶点虽然不在同一个平面,而且颜色、纹理或法向量不同,但他们的材质却通常一样,例如轮胎,整个轮胎材质是一样的,而轮胎由成千上万个三角形面片描述,如果每个三角形顶点到包含这个相同的材质信息,势必对内存是个很大的浪费,如下图:

上图中,不仅整个轮胎是相同材质,整个挡风玻璃是相同材质,同理整个前照灯也是相同材质。

Modo:纹理与材质应用技术教程_2024-07-16_04-06-39.Tex 在开始探索Modo的纹理与材质应用之前,我们首先需要熟悉Modo的软件界面。Modo是一款由Foundry开发的3D建模、动画和渲染软件,其界面设计直观且功能强大,适合专业艺术家和设计师使用。 阅读详情

相关推荐

openCV纹理图像特征提取,比较两幅图像的相似度

利用opencV和C语言编写,利用纹理特征比较两幅图像的相似度

材质和纹理的区别

纹理更偏向于“图”,而材质更偏向于“属性”。 打个比方说,对同一个立方体模型进行处理: 加纹理信息:可以认为是贴上图,比如木头的纹理图,大理石的纹理图。 加材质信息:可以认为是为这个立方体加上属性(这些属性主要是指反射系数、折射系数等),比如木头的属性或大理石的属性。 从另一个角度来看,加了纹理的模型是静态的和表面的,不会因为外界环境变化而变化(比如光照)。但是加了材质的模型是动态的和本质的,当外...

zhuyong006的博客 6180

ArcGIS基础:CAD数据转换为GIS数据(符号化显示、数据转换、线转面、空间连接)

1、符号化显示: CAD数据加载进来有很多列表,包含了点【point】、线【polyline】、面【polygon】、标注数据【Annotation】等数据,本次实验我们需要用到的是面数据,也就是.dwgPolygong格式的数据。如下图所示: 把数据加载进来,然后在2处打开属性表,查看CAD数据的属性表,打开后可以发现【layer】图层表示就是地块的用地性质,它就是符号化显示的依据。 我们在数据上右键【属性】,打开图层属性,找到【符号系统】,选择类别中的【唯一值】,然后在【值字段】下拉选择【layer】,

yuanYW7556的博客 2万+

贴图、纹理、材质的区别是什么?

http://www.zhihu.com/question/25745472 3D中,这几个概念没有那么复杂。 1、纹理即“纹路”,每个物体表面上不同的样子,譬如说木头的木纹状。 2、贴图是图,最简单的形式是ps之类的软件做出来的一张图,这些图在3D中用来贴到物体的表面,用来表现物体的“纹理”。 3、材质主要是用来表现物体对光的交互(反射、折射等)性质的

taotaoahui 7074

静态分析工具COBOT与Testbed对比

Testbed为规则检查工具的代表,市场占有量非常大,但随着时间的推移,大家从规则匹配转向了用静态分析工具检查Bug,所以规则检查型工具占有量比开始时候已经减少,但仍有一些比较落后的单位还在继续采购此类工具。3、通过对开源工程的测试,进行误漏报率的对比,发现COBOT(库博)的误漏报率相比Testbed较低,因COBOT主打国内市场,在众多军工单位进行大量试用及使用,吸取了众多单位的意见和建议,更加符合国内军工单位的使用习惯及测试要求。4、此外库博在功能上还可以进行计划任务,检测队列,检测并发的功能支持。

chengoodflower的博客 2054

MaxEnt物种分布预测中的常见误区与优化技巧:如何提高模型准确率

本文深入探讨了MaxEnt物种分布预测模型从基础应用到精准预测的进阶实践。针对模型准确率提升,文章系统分析了环境变量筛选、模型参数调优、结果批判性解读等核心环节的常见误区,并提供了基于生态位模型原理的深度优化技巧,帮助研究者产出更可靠、可解释的预测结果。

weixin_29219539的博客 594

纹理、贴图、材质的区别

这三个在图形学里实际上是差不多的概念,区别在于:材质 > 贴图 > 纹理 纹理(texture):位图,像素矩阵。 贴图(map):把纹理映射到3D物体表面。有时候合称纹理贴图,这时指的是贴图。 材质(material):除了包括贴图,还包括表面的光照shader,如金属光泽的材质。Unity中的材质也叫材质球,材质球中可以指定纹理。 总的来说,在层级上是材质包含贴图,贴图包含...

长三月的游戏开发 6570

openEuler系统下安装Google Chrome浏览器全攻略(附依赖问题解决方案)

本文详细介绍了在openEuler系统上安装Google Chrome浏览器的完整指南,包括环境准备、多种安装方式、依赖问题解决方案及性能优化技巧。针对openEuler特有的软件生态和依赖管理机制,提供了实用的命令和配置方法,帮助用户克服安装过程中的常见障碍,实现流畅的Chrome使用体验。

hadoop5ranger的博客 1148

一文看懂-纹理/贴图/材质

借Unity简要解释和理解材质,纹理和贴图的相似点和区别。

qq_37219159的博客 3343

osgEarth实战:5分钟搞定3DTiles模型加载(附完整配置代码)

本文提供了一份osgEarth加载3DTiles模型的实战指南。通过详解核心Earth文件配置与精简的C++集成代码,帮助开发者快速在三维地球场景中集成倾斜摄影与BIM等海量模型,并分享了性能调优与常见问题排查技巧,有效提升开发效率。

jjj34的博客 479

uniapp [安卓苹果App端] - 实现获取请求手机位置权限+开启定位获取经纬度/省市区地址等,检测权限手机定位是否开启并引导用户同意授权,uniApp app端调用本机开启本机定位权限及IP属地

uni-app,手机定位权限,安卓Android,苹果ios,uniapp获取本机位置权限,uni-app获取用户定位数据,uniapp APP获取用户IP属地定位,判断权限,权限被拒绝了怎么办,苹果ios系统无法开启定位,获取定位权限报错,uniapp定位获取省市区,UNI-APP如何开启手机定位功能并获取经纬度,不依赖地图第三方插件组件,打包上架后如何获取,真机运行无法获取定位,安卓和ios权限获取,判断权限检查,正式打包,详细教程,根据获取当前经纬度,再根据经纬度去定位具体省市区,自定义基座打包能成功

🏆 前端领域优质创作者 1万+

Texture(纹理)和Material(材质)概念上的区别

我的理解是:纹理更偏向于“图”,而材质更偏向于“属性”。 打个比方说,对同一个立方体模型进行处理: 加纹理信息,可以认为是贴上图,比如木头的纹理图,大理石的纹理图。 加材质信息,可以认为是为这个立方体加上属性(这些属性主要是指反射系数、折射系数等),比如木头的属性或大理石的属性。 从另一个角度来看,加了纹理的模型是静态的和表面的,不会因为外界环境变化而变化(比如光照

FlashMean的专栏 1万+

C#上位机性能优化全攻略:彻底解决界面卡顿+多线程死锁+PLC数据延迟,产线实测稳定运行2年

一开始我们用的是网上找的零散优化代码,根本满足不了要求,后来花了2个月的时间,把之前27条产线的代码整理、重构、优化,做了一套这套方案上线后,连续稳定运行2年零3个月:界面响应时间稳定在50ms以内,多线程死锁率持续为0,PLC数据延迟稳定在150ms以内,系统可用率≥99.99%,帮客户一年省下了超过480万的停线损失、罚款损失和人工成本,客户第二年就把剩下的22条产线也全部交给我们做了,还介绍了3家同行。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 293

材质、纹理、贴图的区别和关联

材质和纹理是相互配合使用的,材质定义了物体的属性,纹理贴图则通过提供具体的颜色和纹理信息来赋予模型真实感和细节效果。

ygtu2018的博客 2365

Windows原生环境配置Tensorflow使用GPU

本文讲解如何在Windows原生环境搭建可调用GPU设备进行计算的Tensorflow2.x环境。 区别于WSL,使用Windows原始环境作为开发环境。

天然玩家的博客 1497

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Unity的纹理和材质的区别

**格式**:纹理可以有不同的格式,如PNG、JPEG、TGA、DDS等,也可以是Procedural Texture,由代码生成的纹理。- **属性**:材质包含多个属性,如颜色属性、纹理属性、光照属性等,这些属性决定了物体的外观。- **关系**:材质通常引用一个或多个纹理,这些纹理用于定义材质的外观。纹理是材质的一部分。- **属性**:材质包含各种属性,用于确定物体的渲染效果,而纹理通常包含颜色信息。- **示例**:纹理可以是游戏角色的皮肤、地形的纹理、道路的纹理等。

c3872931的博客 1255

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Texture(纹理贴图)和Material(材质)概念上的区别

我的理解是:纹理更偏向于“图”,而材质更偏向于“属性”。 打个比方说,对同一个立方体模型进行处理: 加纹理信息,可以认为是贴上图,比如木头的纹理图,大理石的纹理图。 加材质信息,可以认为是为这个立方体加上属性(这些属性主要是指反射系数、折射系数等),比如木头的属性或大理石的属性。 从另一个角度来看,加了纹理的模型是静态的和表面的,不会因为外界环境变化而变化(比如光照)。但是加了材质的模型是动态的和...

UIUCGOGOGO的博客 1万+

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Three.js 材质和纹理的秘密:让你的模型更加真实

材质定义了物体表面的外观属性,而纹理则进一步为这些属性提供细节,让你的模型从“好看”变成“惊艳”。今天我们就来揭开 Three.js 中材质和纹理的秘密,通过丰富的例子,帮你掌握它们的使用技巧!Three.js 提供了强大的材质和纹理系统,让开发者可以轻松创建逼真的 3D 场景。纹理在材质中的重要性不言而喻,它们为表面赋予逼真的细节。无论是石墙的粗糙感还是金属的光滑反射,材质和纹理让你的 3D 世界更加生动!为例,它是 Three.js 中最常用的物理材质,适合模拟真实世界的光照。

一名热衷于技术的全栈开发者,专注于前端与后端的全面技术探索。在这里,我将分享我在技术领域的学习与成长,助力更多开发者的进步。 2091

UE4材质01纹理和材质

文章目录纹理与材质纹理尺寸和mipmap多级渐进式纹理纹理文件格式和纹理压缩纹理通道和sRGB前向渲染和延迟渲染遮蔽剔除和半透明 纹理与材质 纹理尺寸和mipmap多级渐进式纹理 输出指定尺寸的图片:ps-图像–图像大小 Mip-map 的生成在纹理导入时发生,将创建纹理的 mip-map 链。Mip-map 链由相同图像的多个等级组成,每个等级的分辨率是上个等级的一半。该数据使显卡在使用更低的 mip 时更快地执行渲染(显存带宽更少),并降低精细纹理在特定距离出现的纹理失真(闪烁)。设置在运行时不存

uchihalyn的博客 2253

光照、材质、纹理的关系

光照、材质、纹理的关系?它们的关系的确不好描述。1.材质与纹理:1)         纹理?纹理是这个物体具体的表现形状。通过贴图反映,你可以认为它是物体的本来颜色或图案(或外在属性)。所以,光照与纹理是没什么关系的,我们主要关注的应该是光照与材质的关系。2)         材质?是某种物质自身对光线的各种反应状况。材质反应了物体的物理属性(或内在属性),没有材质,计算机就不知道

wuzoujing的专栏 5668

贴图、纹理、材质、着色器

贴图、纹理、材质、着色器的概念和关系

qq_40846446的博客 911

SuperMap iObjects.Net模型纹理更新功能及注意事项

iObjects.Net模型纹理更新功能及注意事项 背景 很多项目需求是在使用过程中能对模型进行纹理替换。与此同时许多客户就会打电话来咨询纹理替换怎样替换,或者在编写该代码时遇到这样或那样的问题。那么现在小编就跟大家分享一下该功能的实现与注意事项,希望能帮到大家。 骨架、材质和纹理三者的区别: 首先在这儿讲一下骨架、材质和纹理三者的区别。骨架通俗来讲可以理解为模型的形状架构,比如长方体或者六棱柱这...

SuperMap技术控 6971
上一篇: 收藏的博客—源码
下一篇: 关于背面消影和深度测试区别
HNFXS985
博客等级 码龄14年 219粉丝 150原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值