BlenderCN论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2084|回复: 1

图像 图片 贴图 渐变 Open Shading Language(OSL)

[复制链接]
发表于 2013-6-20 23:37:26 | 显示全部楼层 |阅读模式
OSL相关:
http://bbs.blendercn.org/forum.php?mod=viewthread&tid=664
http://wiki.blender.org/index.php/Doc:2.6/Manual/Render/Cycles/Nodes/OSL
http://www.blenderartists.org/forum/showthread.php?297578-Images-lerp

图像 图片 贴图 渐变 OSL


http://player.youku.com/player.php/sid/XNTczMzc3NDY4/v.swf


  1. shader images_lerp (
  2.     float Factor  = 0.0,
  3.     color Color1  = color(1.0, 1.0, 1.0),
  4.     color Color2  = color(1.0, 1.0, 1.0),
  5.     color Color3  = color(1.0, 1.0, 1.0),
  6.     color Color4  = color(1.0, 1.0, 1.0),
  7.     color Color5  = color(1.0, 1.0, 1.0),
  8.     color Color6  = color(1.0, 1.0, 1.0),
  9.     color Color7  = color(1.0, 1.0, 1.0),
  10.     color Color8  = color(1.0, 1.0, 1.0),
  11.     color Color9  = color(1.0, 1.0, 1.0),
  12.     color Color10 = color(1.0, 1.0, 1.0),
  13.     color Color11 = color(1.0, 1.0, 1.0),
  14.     color Color12 = color(1.0, 1.0, 1.0),
  15.     color Color13 = color(1.0, 1.0, 1.0),
  16.     color Color14 = color(1.0, 1.0, 1.0),
  17.     color Color15 = color(1.0, 1.0, 1.0),
  18.     color Color16 = color(1.0, 1.0, 1.0),
  19.     color Color17 = color(1.0, 1.0, 1.0),
  20.     color Color18 = color(1.0, 1.0, 1.0),
  21.     color Color19 = color(1.0, 1.0, 1.0),
  22.     color Color20 = color(1.0, 1.0, 1.0),

  23.     //output closure color BSDF = diffuse(N)
  24.     output color image = 1.0
  25. )
  26. {
  27.     float temp_fac   = 0.0;
  28.    
  29.     if (Factor < 0.0) {temp_fac = 0.0;}
  30.     else if (Factor > 9.0) {temp_fac = 9.0;}
  31.     else {temp_fac   = Factor;}
  32.    
  33.     color Colors[20] = {Color1, Color2, Color3, Color4, Color5, Color6, Color7, Color8, Color9, Color10, Color11, Color12, Color13, Color14, Color15, Color16, Color17, Color18, Color19, Color20};
  34.     int   head       = int(floor( temp_fac ));
  35.     float last       = abs(temp_fac - head);
  36.     color Color      = mix(Colors[head-1], Colors[head], last);
  37.     //printf("\n<<%f %d %f>>",  expand, head, last );

  38.     //BSDF = Color * diffuse(N);
  39.     image = Color;
  40. }

复制代码
 楼主| 发表于 2014-2-19 13:05:25 | 显示全部楼层
Blender Internal (BI 内置传统渲染器)版 链接

http://bbs.blendercn.org/forum.p ... 0579&fromuid=30
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

Blender最新中文教学视频|Blender头条|小黑屋|手机版|Archiver|Blender中国 ( 蜀ICP备17002929号 )360网站安全检测平台

GMT+8, 2020-9-19 23:13 , Processed in 0.030338 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表