当前位置:首页 » 操作系统 » RER算法

RER算法

发布时间: 2022-05-17 22:55:50

A. 体重10斤狗狗一天吃多少狗粮

两个月大的牧羊犬重6.5千克一次要吃多少狗粮?

B. 扫雷点到空格时的算法 跪求

从手工点开的这个空格进行处理,按上右下左或你自己定义的一个顺序来判断相应位置的格式是否是空格且未被点开,如果不是,则跳过,如果是,则将其自动点开,同时把这几个位置加入队列后续处理。
简单的流程图示意:

当前位置是空白位置?----否--->非空白的处理
|
|是
|
V
加入队列
|
V
+--->队列为空?-------->是--->结束
||
||否
||
|V
|第一个元素出队
||
|V
|点开该元素所指的位置
||
|V
|上左下右的位置如果是空白且未点开则入队
||
--------+


上面是非递归的方案,递归方案则更容易了:
伪代码算法描述如下:
Click(pos)//点开pos这个位置
{
//IsClicked()判断是否是已经点开的格子
if(IsClicked(pos))
return;

//IsBlank()判断是否是空白格子
if(!IsBlank(pos))
{
点开非空白格子的处理
}

//下面是点开空白格子的处理
ClickBlank(pos);
}

ClickBlank(pos)
{
if(!IsBlank(pos))
rerurn;

if(IsClicked(pos))
return;

//下面对四个方向的格子进行自动点开
//你需要计算四向的格子位置,无效的直接返回

ClickBlank(pos上面的格子);
ClickBlank(pos右面的格子);
ClickBlank(pos下面的格子);
ClickBlank(pos左面的格子);
}

C. 使用C语言实现一个“位操作”算法,要求简洁、快速

#include<stdio.h>
intmain(void){
unsignedchara=0xAE,b=0xBB,c=0xD2,d=0xCC,t,i,k,e;
scanf("%c/%c/%c/%c",&a,&b,&c,&c);//挂起这一行可用题设数据测试
for(k=0x80,t=~(a&b),e=d,i=0;i<8;i++,k>>=1)
if((c&k)==0)
t&k?e|=k:e&=~k;
printf("e=%#02X ",e);
return0;
}

D. 这个求最大公约数的例子哪里出错了

int HCF(int min,int max){
int r,tmp;
if(min>max){
tmp=min;min=max;max=tmp;
}
r = max % min;
if(r!=0) return min;
else return HCF(r,min);
}
看了你的算法,基本上似乎没错,但是不好阅读!可以使用递归方法!

E. return什么意思

第二十七,try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?
会执行,在return前执行。

java程序员面试32问(建议至顶)

第一,谈谈final, finally, finalize的区别。
final?修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为 abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为final的方法也同样只能使用,不能重载
finally?再异常处理时提供 finally 块来执行任何清除操作。如果抛出一个异常,那么相匹配的 catch 子句就会执行,然后控制就会进入 finally 块(如果有的话)。
finalize?方法名。Java 技术允许使用 finalize() 方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在 Object 类中定义的,因此所有的类都继承了它。子类覆盖 finalize() 方法以整理系统资源或者执行其他清理工作。finalize() 方法是在垃圾收集器删除对象之前对这个对象调用的。

第二,Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?
匿名的内部类是没有名字的内部类。不能extends(继承) 其它类,但一个内部类可以作为一个接口,由另一个内部类实现。

第三,Static Nested Class 和 Inner Class的不同,说得越多越好(面试题有的很笼统)。
Nested Class (一般是C++的说法),Inner Class (一般是JAVA的说法)。Java内部类与C++嵌套类最大的不同就在于是否有指向外部的引用上。具体可见http: //www.frontfree.net/articles/services/view.asp?id=704&page=1
注: 静态内部类(Inner Class)意味着1创建一个static内部类的对象,不需要一个外部类对象,2不能从一个static内部类的一个对象访问一个外部类对象

第四,&和&&的区别。
&是位运算符。&&是布尔逻辑运算符。

第五,HashMap和Hashtable的区别。
都属于Map接口的类,实现了将惟一键映射到特定的值上。
HashMap 类没有分类或者排序。它允许一个 null 键和多个 null 值。
Hashtable 类似于 HashMap,但是不允许 null 键和 null 值。它也比 HashMap 慢,因为它是同步的。

第六,Collection 和 Collections的区别。
Collections是个java.util下的类,它包含有各种有关集合操作的静态方法。
Collection是个java.util下的接口,它是各种集合结构的父接口。

第七,什么时候用assert。
断言是一个包含布尔表达式的语句,在执行这个语句时假定该表达式为 true。如果表达式计算为 false,那么系统会报告一个 AssertionError。它用于调试目的:
assert(a > 0); // throws an AssertionError if a <= 0
断言可以有两种形式:
assert Expression1 ;
assert Expression1 : Expression2 ;
Expression1 应该总是产生一个布尔值。
Expression2 可以是得出一个值的任意表达式。这个值用于生成显示更多调试信息的 String 消息。
断言在默认情况下是禁用的。要在编译时启用断言,需要使用 source 1.4 标记:
javac -source 1.4 Test.java
要在运行时启用断言,可使用 -enableassertions 或者 -ea 标记。
要在运行时选择禁用断言,可使用 -da 或者 -disableassertions 标记。
要系统类中启用断言,可使用 -esa 或者 -dsa 标记。还可以在包的基础上启用或者禁用断言。
可以在预计正常情况下不会到达的任何位置上放置断言。断言可以用于验证传递给私有方法的参数。不过,断言不应该用于验证传递给公有方法的参数,因为不管是否启用了断言,公有方法都必须检查其参数。不过,既可以在公有方法中,也可以在非公有方法中利用断言测试后置条件。另外,断言不应该以任何方式改变程序的状态。

第八,GC是什么? 为什么要有GC? (基础)。
GC是垃圾收集器。Java 程序员不用担心内存管理,因为垃圾收集器会自动进行管理。要请求垃圾收集,可以调用下面的方法之一:
System.gc()
Runtime.getRuntime().gc()

第九,String s = new String("xyz");创建了几个String Object?
两个对象,一个是“xyx”,一个是指向“xyx”的引用对象s。

第十,Math.round(11.5)等于多少? Math.round(-11.5)等于多少?
Math.round(11.5)返回(long)12,Math.round(-11.5)返回(long)-11;

第十一,short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?
short s1 = 1; s1 = s1 + 1;有错,s1是short型,s1+1是int型,不能显式转化为short型。可修改为s1 =(short)(s1 + 1) 。short s1 = 1; s1 += 1正确。

第十二,sleep() 和 wait() 有什么区别? 搞线程的最爱
sleep()方法是使线程停止一段时间的方法。在sleep 时间间隔期满后,线程不一定立即恢复执行。这是因为在那个时刻,其它线程可能正在运行而且没有被调度为放弃执行,除非(a)“醒来”的线程具有更高的优先级
(b)正在运行的线程因为其它原因而阻塞。
wait()是线程交互时,如果线程对一个同步对象x 发出一个wait()调用,该线程会暂停执行,被调对象进入等待状态,直到被唤醒或等待时间到。

第十三,Java有没有goto?
Goto?java中的保留字,现在没有在java中使用。

第十四,数组有没有length()这个方法? String有没有length()这个方法?
数组没有length()这个方法,有length的属性。
String有有length()这个方法。

第十五,Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?
方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。Overloaded的方法是可以改变返回值的类型。

第十六,Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?
Set里的元素是不能重复的,那么用iterator()方法来区分重复与否。equals()是判读两个Set是否相等。
equals()和==方法决定引用值是否指向同一对象equals()在类中被覆盖,为的是当两个分离的对象的内容和类型相配的话,返回真值。

第十七,给我一个你最常见到的runtime exception。
ArithmeticException, ArrayStoreException, BufferOverflowException, BufferUnderflowException, CannotRedoException, CannotUndoException, ClassCastException, CMMException, , DOMException, EmptyStackException, IllegalArgumentException, IllegalMonitorStateException, IllegalPathStateException, IllegalStateException,
ImagingOpException, IndexOutOfBoundsException, MissingResourceException, NegativeArraySizeException, NoSuchElementException, NullPointerException, ProfileDataException, ProviderException, RasterFormatException, SecurityException, SystemException, UndeclaredThrowableException, UnmodifiableSetException, UnsupportedOperationException

第十八,error和exception有什么区别?
error 表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能处理这样的情况。
exception 表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况。

第十九,List, Set, Map是否继承自Collection接口?
List,Set是 Map不是

第二十,abstract class和interface有什么区别?
声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建abstract 类的实例。然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法。Abstract 类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类为。取而代之,在子类中实现该方法。知道其行为的其它类可以在类中实现这些方法。
接口(interface)是抽象类的变体。在接口中,所有方法都是抽象的。多继承性可通过实现这样的接口而获得。接口中的所有方法都是抽象的,没有一个有程序体。接口只可以定义static final成员变量。接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。当类实现特殊接口时,它定义(即将程序体给予)所有这种接口的方法。然后,它可以在实现了该接口的类的任何对象上调用接口的方法。由于有抽象类,它允许使用接口名作为引用变量的类型。通常的动态联编将生效。引用可以转换到接口类型或从接口类型转换,instanceof 运算符可以用来决定某对象的类是否实现了接口。

第二十一,abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized?
都不能

第二十二,接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concrete class)?
接口可以继承接口。抽象类可以实现(implements)接口,抽象类是否可继承实体类,但前提是实体类必须有明确的构造函数。

第二十三,启动一个线程是用run()还是start()?
启动一个线程是调用start()方法,使线程所代表的虚拟处理机处于可运行状态,这意味着它可以由JVM调度并执行。这并不意味着线程就会立即运行。run()方法可以产生必须退出的标志来停止一个线程。

第二十四,构造器Constructor是否可被override?
构造器Constructor不能被继承,因此不能重写Overriding,但可以被重载Overloading。

第二十五,是否可以继承String类?
String类是final类故不可以继承。

第二十六,当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法?
不能,一个对象的一个synchronized方法只能由一个线程访问。

第二十七,try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?
会执行,在return前执行。

第二十八,编程题: 用最有效率的方法算出2乘以8等于几?
有C背景的程序员特别喜欢问这种问题。

2 << 3

第二十九,两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对?
不对,有相同的hash code。

第三十,当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?
是值传递。Java 编程语言只由值传递参数。当一个对象实例作为一个参数被传递到方法中时,参数的值就是对该对象的引用。对象的内容可以在被调用的方法中改变,但对象的引用是永远不会改变的。

第三十一,swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?
switch(expr1)中,expr1是一个整数表达式。因此传递给 switch 和 case 语句的参数应该是 int、 short、 char 或者 byte。long,string 都不能作用于swtich。

第三十二,编程题: 写一个Singleton出来。
Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。
一般Singleton模式通常有几种种形式:
第一种形式: 定义一个类,它的构造函数为private的,它有一个static的private的该类变量,在类初始化时实例话,通过一个public的getInstance方法获取对它的引用,继而调用其中的方法。
public class Singleton {
private Singleton(){}
//在自己内部定义自己一个实例,是不是很奇怪?
//注意这是private 只供内部调用
private static Singleton instance = new Singleton();
//这里提供了一个供外部访问本class的静态方法,可以直接访问
public static Singleton getInstance() {
return instance;
}
}
第二种形式:
public class Singleton {
private static Singleton instance = null;
public static synchronized Singleton getInstance() {
//这个方法比上面有所改进,不用每次都进行生成对象,只是第一次
//使用时生成实例,提高了效率!
if (instance==null)
instance=new Singleton();
return instance; }
}
其他形式:
定义一个类,它的构造函数为 private的,所有方法为static的。
一般认为第一种形式要更加安全些
第三十三 Hashtable和HashMap
Hashtable继承自Dictionary类,而HashMap是Java1.2引进的Map interface的一个实现
HashMap允许将null作为一个entry的key或者value,而Hashtable不允许
还有就是,HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey。因为contains方法容易让人引起误解。
最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在
多个线程访问Hashtable时,不需要自己为它的方法实现同步,而HashMap
就必须为之提供外同步。
Hashtable和HashMap采用的hash/rehash算法都大概一样,所以性能不会有很大的差异

F. 人民币对外币的汇率计算方法是什么

人民币实际汇率的计算公式如下:

RER = (NER * CPIf) / CPId

其中,RER是Real Exchange Rate的缩写,表示实际汇率;

NER是NominalExchange Rate的缩写,表示名义汇率;
CPIf和CPId分别代表国外和国内的消费者物价指数。
当本国一个标准商品篮子的价格上涨,意味着汇率水平下降,本币在外国的购买力下降,本币e值;当本国一个标准商品篮子价格下降时,意味着汇率水平上升,本币在外国的购买力上升,本币值。

G. 100py6等于多少人民币

俄罗斯卢布(Рубль)是俄罗斯的本位货币单位,如您是指100Рубль,则100俄罗斯卢布=8.6173人民币元。由于外汇汇率是实时变动的,此数据仅供参考,具体汇率以您交易时实际交割的成交价为准,货币换算更新时间:2021-04-02 15:03。
应答时间:2021-04-07,最新业务变化请以平安银行官网公布为准。
[平安银行我知道]想要知道更多?快来看“平安银行我知道”吧~
https://b.pingan.com.cn/paim/iknow/index.html

H. 3D 灯光强度参数

3ds mas常用参数:
编辑网格修改器 Edit Mesh 修改器
一:主要用于编辑三维网格物体。 特点是占用资源少,适用于游戏、效果图的制作
二:Edit Mesh的结构
1 Vertex 点层级
2 Edge:物体边层级
3 Face:三角面层级
4 Polygon: 多边形、四边形面层级
5 Elemnet: 元素层级、就是所有连续的表明
Editmesh常用命令
三:MeshSmooth网格光滑修改器
我们在建模过程中,经常会把Edit Mesh和MeshSmooth 一起适用,绘制沙发、靠垫等光滑物体。
MeshSmooth修改器的相关参数
Iterations: 光滑等级,(1~5)
Weight:权重值,可以再具体条件物体的光滑效果、例如是让物体更加光滑或者是更加的尖锐。
Crease:硬度数值: 可以让我们决定物体的那些边参与光滑操作。 数值为1的时候、被选择上的边就没有光滑效果。
二维物体(Shapes)
1:Line的画法。
a。点击可以画出直线
b。拖动鼠标可以绘制出曲线
C:按退格按钮可以重画上一个节点
d:按Shift按钮可以画出正交线
e:按住键盘I按钮时,可以进行视图的延伸
f:按“〔”和“ 〕”按钮可以对视图进行缩放
2:线的结构(次物体):
Vertex:节点层级
Segment:线段层级,线段就是两点间的连线
Spline:样条线层级,代表整条连续的线
3:点的类型:
conner:拐角点
Smooth:光滑点、是自动进行斜率计算
Bezier:贝兹曲线,可以手动条件曲线的斜率。
Bezier conner 贝兹拐角。
4。线的可渲染性
Renderalbe,二维物体的渲染开关
Thickness:线的厚度
Sides:线的截面精度
Diplay Render Mesh:打开后能观察到线的实际大小
5:画线时的常用工具
Refine 加点命令
Fillet:倒圆角
Chamfer:倒斜角工具
Outline:复制样条线工具(在Spline层级)
Attach:激活命令,把外部的二维物体结合进来。
Boolean:步尔运算(之前必须把相关的线条Attach激活进来)
1:先选择一条样条线,
2:确定运算关系(相加、相减和交集)
3:按Boolaen按钮,然后再拾取目标曲线
Trim:减切工具,可以对相交的曲线进行修剪
Weld(点层级工具):可以对一定距离内的点进行焊接
6:插入视图背景(Alt+B)
match bimap 视图匹配,可以保持图片的比例不变
Lock Zoom/Pan 可以确保缩放视图时图片可以一同缩放
DisPlay Backgound:显示背景开关
7:导入外部文件(Import)
8:单位修改:Customize用户菜单中选择Units Setup
System Unit系统单位。
Display Unit Scale显示单位
Bevel 倒角修改器
功能:进行3次拉伸,每次拉伸可以对物体进行缩放。以此给物体制作倒角
主要参数: Height:拉伸的高度。
Outline:缩放效果
Linear sides: 斜面倒角
Curved sides: 圆倒角
Segments:精度。参数越高,物体越光滑
Smooth Across Levels:对每层的拉伸的交界处进行光滑
Keep lines From Crossning:打开时可以纠正倒角的错误
Bevel Profile : 轮廓倒角修改器
功能: 可以自由的编辑物体的倒角面
主要参数:Pick Profile: 拾取轮廓边(轮廓边必须为二维物体)
注意:轮廓边可以是封闭的或开放的二维物体。当我们来到Profile Gizmo层级时可以对倒角的范围框进行各种的移动、旋转和缩放修改。
Loft 放样操作:
放样操作好比一种高级的拉伸:放样必须具备路径(Path)和截面(shape)缺一不可,路径只能有唯一的一条;而截面可以有无数条。
放样的基本操作:
1:绘制出路径和截面
2:选择截面图形,在复合建模中(Compoud Object)打开Loft操作 再选择
Get Path按钮,来拾取路径
或者是:选择路径图形,在复合建模中(Compoud Object)打开Loft操作 再选择Get Shape按钮,来拾取截面
3:多截面放样:
方法 a:先按标准方法进行放样
b:在参数栏中改变Path的数值,也就是改变截取截面的位置。再拾取新的截面。
4: 放样的修改:
A:对放样的截面(Shape)和路径(Path)进行修改放样主要分为Shape和Path层级在Shape层级中,我们可以选择上截面,对其进行各种的变换操作。甚至是删除。而Path层级中修改的是路径的各种参数,例如路径的长度,斜率等等
B:对放样物体的变形操作:Scale:缩放操作。其操作和编辑二维物体很想象。可以任意的加点编辑操作。
5:放样的重要参数:
Cap Start:对顶端封盖
Cap End: 对底端封盖
Shape Step:截面精度,越高截面越光滑
Path Step:路径精度
Linear Interpolation:线性差补、取消路径的光滑效果
Transform Degrade:显示降级操作,取消该功能可以让放样的修改更为直观
三维建模(Geometry)
一。标准几何体(Standard Primitives)
Box:立方体
Cone:圆锥
Sphere:球体
Geospohere:地理球
Cylinder:圆柱体
Tube:水管物体
Torus:圆环
Pyramid:五面体
Teapot:茶壶
Plane:平面
相关的常用参数:
Length 长
Width宽
High:高
Radius圆柱或者是圆锥的半径
Sides边数、决定模型截面的精度。
Smooth平滑,让模型以平滑状态显示
Segments段数,组成物体的细分程度,这个参数在实际中非常重要断数约多的物体越光滑
Fillet倒角参数
二。常用扩展体
1)Headra(多面体)分为8、16、32面体另外附带两种星形(可以制作流星锤)
2)Chamfer Box(倒角立方体)基本和box的参数一样,但是还可以给box制作倒角效果,是一个非常常用的工具。如下图所示的沙发于桌子都是由chamferbox拼凑而成
三。 Boolean三维物体的步尔运算
1.概念:尔运算是首先由19世纪英国科学家Boolean(步尔)使用的一种对象合成逻辑计算方式,这种逻辑运算方 式可以使对象之间进行Union(并集)、Intersect(交集)、和Subs traction(差集)计算后合成在一起。
2.进行布尔运算时的要求
(1)要求参与运算的物体必须具有绝对完整的表面、没有洞、重叠面或未被合并的节点。
(2)保持法线方向的一致,不要轻易翻转物体表面的法线,否则会产生不可预知的结果
(3)要求物体表面元素没有重叠现象,也就是说在物体的表面或内部没有因使用次物体级中的编辑,修改命令而留下 多余或线段
(4)如果操作物体没有相交,布尔运算什么也不会做最好是在表面复杂程度相近的模型之间进行布尔操作,如果一个物体很复杂(由很多点线面组成),而另一个物体很简单)如一个没有进行任何段设置的盒子),对它们进行布尔运算,运算结果将会花费很长时间
3.布尔运算的相关参数:
【.布尔运算的相关参数】
Pick Boolean(拾取布尔物体“B”):布尔运算必须同时具备A物体与B物体。
Copy(复制):布尔运算后不破坏原来的物体
Move(移除):布尔运算后原物体被删除。
Instance(关联):布尔运算后,布尔运算物体与原来物体成关联关系
Reference(参考):布尔运算后,布尔运算物体与原来物体成参考关关系
Operands(运算物体):列出所有的运算物体,供编辑操作时选择使用
Extract Operand(提取运算物体):它可以将当前指定的运算物体重新提取到场景中,作为一个新的物体
Display/Update】
Result:只显示最后结果
Operands:显示出所有的运算物体
Results + Hidden Ops:显示隐藏物体和最后结果。
注意:步尔运算只有对单个对象计算时才是可靠的,在对下一个对象进行计算之前先要退出步尔运算的窗口然后再对该对象进行步尔运算的操作。
材质编辑
一。材质的指定:
1:直接拖动法
2:按“Assign Material to Selection”工具
二。材质的保存
1,选择好材质以后,按“Put to library”按钮
2:进入材质库,按save保存当前材质
三:材质的基本参数:
Diffuse:漫反射颜色,物体的主要色彩。
Ambient:环境色,物体受到外部环境影响时所发出的色彩,一般情况下没有任何效果。
Specular:高光色,物体全反射的色彩
Specular Level: 高光强度。 一般金属,陶瓷等比较坚硬和光滑的物体有比较的高光。
而墙体、布料、陶土等材质的高光就比较弱、甚至是没有高光。
Glossiness:反光面积、也就是高光点的大小。
Soften:高光的柔和度。不是很常用的一个参数。
Self-Illumination:自发光参数。让物体产生荧光的效果。但是一般情况下不
可以进行照明。
Opacticy:不透明度、100为完全不透明,0为完全透明。制作玻璃等透明物体可以
把参数调为(10~30)
四:主要的Shader(明暗生成器)
Blinn 布林材质: 最常用的shader之一,可以制作陶瓷、陶土、布料、玻璃、塑料等效果
Metal:金属, 制作金属专用的sahder
Anisotropic: 各相异性材质, 可以通过Anisotropy和Orientation两个产生,使高光
变窄和改变角度、可以产生梭型的高光
Multi-Layer:多重高光,和Anisotropic非常类似,可以产生两层的高光。产生更凌乱
的高光效果
Translucent Shader,半透明效果。可以用于蜡烛、珠宝等材质的制作。
程序贴图说明:
Gradient 渐变 (通过三个色块决定渐变的颜色也可在相应的通道中实现贴图的渐变,Gradient type :line 线性Radial辐射方式 Nosie 噪波效果,可以模拟火焰。Amount 噪波强度 size噪波尺寸)
Output 一般做反光板
材质类型
一.Multi/Sub-object 多维子材质
可以让材质拥有多个子材质组成
相关参数:
Set Number 设定材质的数量
Add 增加一个子材质
Delete删除当前选择的材质
另外除了材质本身以外我们还需要对物体进行材质ID号的指定。
二。Double Sided 双面型材质
功能:给同一个表面的正反方向分别赋予材质。
主要参数:
Translucency:透明属性,让物体表面有半透明的效果
Facing Material 正面材质。
Back Material:背面材质。
三:Raytrace 光线追踪材质类型
功能:制作半透明材质、金属和玻璃材质,
特点是光线追踪速度快。
和标准材质不同的地方:
Transparency:透明度,黑色表示不透明。白色则刚好相反。
物体变为透明后就自动带有折射效果。
Reflect: 反射,黑色代表没有任何反射效果。
Advanced Transparency(高级透明)
Color染色、End决定色彩的浓密程度、
Fog:让透明物体有一种雾状透明的效果。
灯光
Target/Free Spot:目标/自由聚光灯
Target/Free Direct: 目标/自由平行光
Omni:泛光灯
Skylight:天光
一般参数(General )
1)on:灯光开关
2)Type:灯光类型
3)Targeted:勾选时灯光有目标点。
4)Shadows On:阴影开关(可以通过右键菜单快速选择)
5)Use Global Setting:使用全局设置
6)Exclude:排除,允许物体不受到灯光的照射影响
Intensity/Color/Attenuation灯光的强度、色彩、以及照明的距离:
Multiplier(倍增器):对灯光的照射强度控制,标准为1,如果设置为2 则光强增加一倍,如果为负数,将会产生吸光效果。
灯光衰减(Attenuation )
(1) Near Attenuation近距衰减:由于它的衰减方式违反了自然的定律,因此我们在效果图的制作中不会经常用到此衰减
(2) Far Attenuation 远距衰减,我们可以通过调整Start和End两个数值来控制灯光的衰减范围
(3) Decay(真实的衰减计算)
Inverse反向,会产生剧烈的衰减
Inverse Squire反向平方:是按照真实的灯光衰减方式进行衰减计算的,衰减最为强烈却最真实。Start可以控制灯光从何处开始衰减
Spotlight/Parameters 聚光灯/平行光
Show Cone:在灯光为非选择的状态下仍显示灯光的照明范围
Overshoot:照亮全局,远距范围外的场景也会被照亮
Hotspot:(聚光区)在这个区域内有聚光灯的最强照明度
从这个区域外开始,灯照强度逐渐衰减。
Falloff(衰减区)在此区以外的对象将不会受到光照。
注意:一般Hotspot和Falloff参数差值越大,光斑边缘越模糊。
2.shadows Params 阴影参数
color:可以改变阴影的颜色。
Dens:调节阴影的浓度
Map:为阴影指定贴图。
Light Affects Shadows Color:阴影色显示为灯光色与阴影固有色的混合效果 。
Atmosphere shadows On:设置大气是否对阴影产生影响。
(例如做燃烧火焰的时,需要打开此按钮)
Opacity(不透明度)
Color Amount:调节大气颜色与阴影颜色混合程度的百分比
Bias:对阴影效果进行偏移
Size:降低此值会使阴影更加模糊,数值越高阴影越清晰
Sample Range:采样数值,此值越高阴影的品质就越高,但渲染越慢
Advanced Effects 高级效果
Contrast:调节物体高光区与过渡区之间的表面对比度,值为0时是正常效果,对有些特殊效果如空间中刺目的反光,需要增大对比度。
Soften Diff.Edge(柔化过渡边界)柔化过渡区阴影表面之间的边缘,避免产生清晰明暗分界。
Diffuse:勾选时,灯光可以产生漫反射。
Specula:勾选时,灯光可以产生高光效果。
Ambient Only:勾选时,灯光仅以环境照明的方式影响物体表面颜色,近似给模型表面均匀的涂色。通过此参数,可以灵活地为物体指定不同的环境光照明影响
Projector(投影图像):打开此项,可以通过其下的Map(贴图)按钮选择一张图像作为投影图
贴图通道和程序贴图
贴图的内部参数:
View Image: 贴图的剪切按钮
Filtering:贴图的过滤方式,采用Summed Area方式可以最大程度上对图片进行优化
Blur:贴图的模糊参数
Blur Offest 模糊偏移、产生更大的贴图模糊效果。
常用的贴图通道:
一。Diffuse Color:纹理通道(过渡色通道),用于表现物体纹理的通道、属于色彩通道。
二。Bump:凹凸通道:属于强度通道,图片被放入此通道后,可以用来控制物体的凹凸效果,黑色可以让物体产生凹陷效果;白色可以让物体有隆起样子。常用的杂点程序贴图: 杂点程序贴图一般由几种色彩构成。可以用于纹理通道和凹凸通道。可以表现各种纹理的效果。
1.Noise 噪波程序贴图:
主要参数: size:尺寸,控制色块的大小
High和low可以控制两种色彩的分布
Levels:用于控制贴图的精度。
Noise type:噪波种类
Regular规则噪波
Fractal分型噪波,更加凌乱的效果
Turbulence端
流噪波
2.Cellular:细胞贴图
主要参数: Iterations 图片的精度、细节度
Spread:延伸,可以控制色彩的分布
Roughness:图片的粗糙程度。
3.Dent: 凹陷贴图。 用于表现强烈凹凸的贴图,
主要参数:
Strength:凹陷的强度,实际是调节黑白两色的对比度
Iterations:贴图的精度、和细节度。
4。Smoke 烟雾贴图
相关参数: Exponnent,可以控制两种色彩的分布。
size:烟雾的大小
三:Reflection(反射通道)
常用的相关贴图
1:Raytrace光线追踪贴图。产生真实的反射、反射周围的物
主要参数:
Enable Raytracing:光线追踪的开关
Enable Atmospherics:对大气环境,例如雾效进行反射
Enable Self Reflect\Refract 对自己产生反射和折射
BackGround 背景设置
Use Enironment Settings:只反射周围环境
None:通道,可以这里添加贴图,给物体增加一个虚拟的反射环境
Attenuation反射的衰减
Falloff Type:衰减类型
off 关闭衰减
Linear:以匀速进行衰减
Inverse Square 反向平房,比较真实的衰减方式,但衰减的速度非常快
Exponential:对数方式衰减衰减时可以调节End数值控制衰减的程度。
另外可以在rendering菜单的rendersetting里面调节反射效果(真反射)。 调节反射反弹次数(Maximum Depth)打开反射抗锯齿(Global Ray Antialiaser)
2。Flat Mirror 平面镜
假反射的一种 ,特点是速度快。
相关参数:Blur 对反射进行模糊
Use Bump map对凹凸效果也进行反射
四:Reraction折射通道
通常用于制作玻璃和水等透明物体。可以添加上Raytrace光线追踪贴图就可以参数折射效果。
另外一般可以配合Extended Parameters里面的Filter(过滤)、
Subtracteve(减淡)、和Additive(加亮)参数进行调节。
Index of Refraction(折射率)
Index of Refraction:折射率
真空:1.0
空气:1.0003
水:1.333
玻璃:1.5到1.7
钻石:2.419
五:Opacity不透明通道
用于控制物体的透明、属于强度通道。也就是说只能通过图片的灰度来控制物体的透明效果。黑色……全透明。纯白……不透明效果。
Path Constraint路径约束控制器
相关参数
Add Path:用于获取运动路径的工具。
Follow:让摄像机产生跟随效果,摄像机在运动中角度随路径改变而改变
Along Path沿路径的百分比
Constant Velocity 可以让物体产生匀速的运动
Bank:摄像机在运动是可以产生倾斜
Bank Amount:倾斜的幅度
Smoothness:拐弯时角度变化的速度
Allow Upside当对象沿垂直路径运动时,可以头部向下颠倒,如同游乐园中的过山车的运动。
Constant Velocity:匀速运动
Loop:循环
Relative(相对)被约束对象会保持在原先的位置,与路径曲线保持一个相对偏移距离进行路径约束运动
Axis:轴向,可以调整摄像机的朝向。
Flip:反转摄像机的方向
光能传递
光能传递的制作流程
1: 设置好灯光,一般采用光度学灯光。选取合适的光域网文件
2:打开光能传递: 快捷键:9, 寻找选择光能传递(Radiosity)
光能传递的主要参数:
Start:开始光能传递计算,一般对场景物体有所改动以后,都要重新计算一 次。在测试过程中,只要计算精度达到1以上就可以了。
stop:停止计算
Reset All 重新开始计算
Reset: 只对灯光物体进行重新计算
Intial Quality:对物体的细分质量。越高效果越好。
Refine Iterations(All Objects) 提高所有物体的细分等级。越高效果 越好。
注:如果我们在最终使用Regather(光线再聚集)算法,以上的两个参数的大小就无关中要了。
Filtering: 过滤,可以适当的消除黑斑
Setup: 可以从这里进而Environment(环境)面版。 进入后,我们通常都要打开曝光控制。方法在Exposure Control中选择Logarithmic Exposure Control
然后再可以调节图片的Brightness(亮度)、Contrast对比度等等。一般场景都要打开Affect Indirect Only选项,这样图片会更加清晰。如果场景有日光可以使用Exterior Daylight选项。
3:在调节好灯光和曝光效果后可以进行最终的输出。
在Rendering Parameters中打开Regather Indirect(再聚集)64~180
Rays Per Sample :采样值,参数越高,效果越好
打开Adaptive Sampling,可以提高选渲染速度
4、计算反射反弹:1-prefercnce setting
2-advanced lighting/material editor
物体不受
阴影:在物体属性不勾选receive shadows
开阳光,勾选environment /exposure control/logarithmic exposure control-----勾选exterior daylight.
一。光能传递~再聚集算法
再聚集的相关参数:
Regather InDirect Illumination:再聚集的开关
通常我先要对物体进行细分、细分度大于一就可以了。
Rays Per Sample:光线采样数量、越大效果越好、时间越长
Filter Radius:(过滤半径)、可以减少黑斑,但也会增加渲染时间
Clamp Values:用于防止亮斑、控制整个场景的总体亮度。
Adaptive Sampling 适配采样技术、可以提高我们的渲染效率,但会相应降低渲染效果。打开次功能后,可能需要适当再增加渲染质量
Initial Sample Spacing:对场景中相对“简单、平坦”的地方进行低精度的采样
Subdivide Down to 对精度、和细节比较丰富的地方采样相对较高的采样精度。
Show Samples:显示红色的采样点,让我们可以了解场景中的采样分布。
二。图像的优化措施
1。在曝光控制中提高图片的对比度
2.在渲染控制中选择相对优秀的Mitchell_Netravali过滤方式,进行抗锯齿
3.在Photoshop中使用各种工具或虑镜对图像进行锐化处理,可以提高图片的清晰度。
简表面的修改器
一。MultiRes 多重优化修改器
作用:在减少表面数量的同时可以有效的保护物体外形。
缺点在于优化后的max文件会比较庞大
相关参数:
Generate:计算按钮。优化之前必须先进行计算。
Ver Percent: 点的数量比例。 可以调节物体的段数
二。Optimize 优化修改器
作用也是精简表面,虽然精简的效果不如MultiRes。但是不会导致文件变得过大
主要参数就是Face Thresh;参数越大精简得越厉害
视图加速方法
1:在每个视图按D按钮,取消4个视图同时刷新。
2: 隐藏暂时不调节的物体,充分利用快捷键、独立工具(Alt+Q等)
3:添加各种优化修改器减少表面数量,或者适当的删除物体的历史记录
(就是所谓的塌陷)。
4:不必把材质中的图片全部显示在视图中。使用Views中的Deactivate all map
命令,取消显示贴图。
5:使用OpenGL显卡方式进行加速。
6:按O(欧)键,可以打开显示降级操作,当我们旋转视图时就会自动降低显示质 量,加快显示速度。
3dsmax效果图输出设置:
图片的大小(150分辨率):
A5,210×148mm: 1240×875
A4,297×210mm: 1750×1240
A3,420×297mm: 2480×1750
A2:594×420mm: 3500×2480
A1:894×594mm: 4960×3500
A0:1189×841mm:7000×4960
输出的过滤方式:Mitchelj-Netavali
文件输出格式:Jpg格式-有损压缩、图像文件小但效果不高
TGA和Tif格式无压缩、图像质量高、文件相对较大。
输出应打开选项:shadow阴影 mappin 贴图 auto reflet/refrace 自动折射
anti-aliusin filter 选mitchell-netravali

热点内容
口语交际访问 发布:2025-01-15 06:44:13 浏览:327
编程少儿学习 发布:2025-01-15 06:39:03 浏览:502
服务器搭建怎么设置 发布:2025-01-15 06:39:01 浏览:149
格鲁尔要什么配置 发布:2025-01-15 06:26:56 浏览:855
linux下安装jdk 发布:2025-01-15 06:03:05 浏览:545
服务器拷数据到电脑 发布:2025-01-15 05:58:19 浏览:481
android的单例模式 发布:2025-01-15 05:50:55 浏览:928
aes256在线加密工具 发布:2025-01-15 05:36:25 浏览:223
朋友圈的缓存在哪里 发布:2025-01-15 05:35:01 浏览:509
进入时间段的密码是多少 发布:2025-01-15 05:11:07 浏览:384