¥é¥¤¥Æ¥£¥ó¥°

¥é¥¤¥Æ¥£¥ó¥°¤Ë¤è¤ê¡¤¤è¤êɽ¸½ÎϤΤ¢¤ë3DCG¤òÉÁ²è¤·¤Þ¤¹¡¥

ambientLight

ÆüËܸì¤Ç¤Ï´Ä¶­¸÷¤È¸Æ¤Ð¤ì¤Þ¤¹¡¥¿Þ·Á¤ÎÌ̤ΰÌÃÖ¤ä¸þ¤­¤Ë´Ø·¸¤Ê¤¯¡¤Åù¤·¤¯¾È¤é¤¹¸÷¤Ç¤¹¡¥

void setup()
{
  size(640, 480, P3D);
}

void draw()
{
  background(127, 127, 127);
  camera(100, -100, 100, 0, 0, 0, 0, 1, 0);
  axis(100);
  fill(255, 0, 0);
  noStroke();
  ambientLight(127, 127, 127);
  sphere(30);
}

void axis(float l)
{
  stroke(255, 0, 0);
  line(0, 0, 0, l, 0, 0);
  stroke(0, 255, 0);
  line(0, 0, 0, 0, l, 0);
  stroke(0, 0, 255);
  line(0, 0, 0, 0, 0, l);
}
ambient.png

µå¤Ïfill(255,0,0)¤ÇÀÖ¤ËÀßÄꤵ¤ì¤Æ¤¤¤ë¤Î¤Ç¡¤´Ä¶­¸÷¤Î¿§¡Ê127¡¤127¡¤127¡Ë¤Èµå¤Î¿§¤¬¾è»»¤µ¤ì¡¤·ë²ÌŪ¤Ë°Å¤á¤ÎÀ֤Ȥʤê¤Þ¤¹¡¥

directionalLight

¸÷¤Î¿§¤È¡¤¸þ¤­¤Î¤ß¤ò»ý¤Ä´ðËÜŪ¤Ê¥é¥¤¥È¤Ç¤¹¡¥Ê¿¹Ô¸÷¸»¤È¤â¸Æ¤Ð¤ì¤Þ¤¹¡¥
¸÷¤Î¸þ¤­¤È¡¤¿Þ·Á¤ÎÌ̤οâľÊý¸þ¤Î¸þ¤­¡ÊË¡Àþ¡Ë¤Î¸þ¤­¤À¤±¤Ç·×»»¤µ¤ì¤Þ¤¹¡¥

void setup()
{
  size(640, 480, P3D);
}

void draw()
{
  background(127, 127, 127);
  camera(100, -100, 100, 0, 0, 0, 0, 1, 0);
  axis(100);
  fill(255, 0, 0);
  noStroke();
  directionalLight(255, 255, 255, -1, 0, 0);
  sphere(30);
}

void axis(float l)
{
  stroke(255, 0, 0);
  line(0, 0, 0, l, 0, 0);
  stroke(0, 255, 0);
  line(0, 0, 0, 0, l, 0);
  stroke(0, 0, 255);
  line(0, 0, 0, 0, 0, l);
}
directional.png

¾åµ­¤ÎÎã¤Ç¤Ï¡¤¸¶ÅÀ¤«¤é¡Ê-1,0,0¡Ë¤Ø¤Î¸þ¤­¤ÇÇò¿§¤Î¸÷¸»¤òÀßÄꤷ¤Æ¤¤¤Þ¤¹¡¥¤¿¤À¤·¡¤µå¤Ïfill(255,0,0)¤ÇÀÖ¤ËÀßÄꤵ¤ì¤Æ¤¤¤ë¤Î¤Ç¡¤¸÷¸»¤Î¿§¤Èµå¤Î¿§¤¬¾è»»¤µ¤ì¡¤·ë²ÌŪ¤ËÀ֤Ȥʤê¤Þ¤¹¡¥

pointLight

ÅÀ¸÷¸»¤È¤â¸Æ¤Ð¤ì¤Þ¤¹¡¥¿§¤È°ÌÃÖ¤ò»ý¤Á¡¤¸÷¸»¤«¤éÎ¥¤ì¤ë¤È¸÷¤¬¸º¿ê¤·¤Þ¤¹¡¥Æ¦Åŵå¤ò»×¤¤É⤫¤Ù¤ë¤ÈÎɤ¤¤Ç¤·¤ç¤¦¡¥

void setup()
{
 size(640, 480, P3D);
}

void draw()
{
  background(127, 127, 127);
  camera(100, -100, 100, 0, 0, 0, 0, 1, 0);
  axis(100);
  fill(255, 0, 0);
  noStroke();
  pointLight(255, 255, 255, 50, 0, 0);
  sphere(30);
}

void axis(float l)
{
  stroke(255, 0, 0);
  line(0, 0, 0, l, 0, 0);
  stroke(0, 255, 0);
  line(0, 0, 0, 0, l, 0);
  stroke(0, 0, 255);
  line(0, 0, 0, 0, 0, l);
}
point.png

¸÷¤Î¸º¿êΨ¤ÏlightFalloff´Ø¿ô¤Ë¤è¤êÀßÄê¤Ç¤­¤Þ¤¹¡¥

spotLight

̾Á°¤ÎÄ̤ꡤ¸½¼Â¤Î¥¹¥Ý¥Ã¥È¥é¥¤¥È¤ÈƱÅù¤Îµ¡Ç½¤ò»ý¤Ä¸÷¸»¤Ç¤¹¡¥¿§¡¤°ÌÃÖ¡¤¸þ¤­¡¤¥¹¥Ý¥Ã¥È¤òÅö¤Æ¤ëÉôʬ¤Î¹­¤µ¡¤¥¹¥Ý¥Ã¥È¤ÎÃæ¿´¤«¤é¤Î¸÷¤Î¸º¿êΨ¤ò»ØÄꤷ¤Þ¤¹¡¥

¸÷¸»¤Î°ÌÃÖ¡¤¸þ¤­¤ÎÊÑ´¹

¸÷¸»¤Î°ÌÃÖ¤ä¸þ¤­¤â¡¤translation¤ärotate´Ø¿ô¤Ë¤è¤êÊÑ´¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡¥

void setup()
{
  size(640, 480, P3D);
}

void draw()
{
  background(127, 127, 127);
  camera(100, -100, 100, 0, 0, 0, 0, 1, 0);
  axis(100);
  fill(255, 0, 0);
  noStroke();
  pushMatrix();
  rotateZ(-PI/4);
  directionalLight(255, 255, 255, -1, 0, 0);
  popMatrix();
  sphere(30);
}

void axis(float l)
{
  stroke(255, 0, 0);
  line(0, 0, 0, l, 0, 0);
  stroke(0, 255, 0);
  line(0, 0, 0, 0, l, 0);
  stroke(0, 0, 255);
  line(0, 0, 0, 0, 0, l);
}
lightrot.png

¾åµ­¤ÎÎã¤Ç¤Ï¡¤(-1,0,0)¤Î¸þ¤­¤Î¸÷¸»¤òZ¼´Ãæ¿´¤Ë45Åٲ󞤷¡¤¼Ð¤á¾å¤«¤é¸÷¤¬Åö¤¿¤ë¤è¤¦¤Ë¤·¤Æ¤¤¤Þ¤¹¡¥

²ÝÂê¤ÎÄó½ÐÀ衦Äó½ÐÊýË¡

\\nas002.term.usmc.dendai.ac.jp\¼ø¶ÈÍѥ¥¯¥¹¥Ú¡¼¥¹\Àé½»¥­¥ã¥ó¥Ñ¥¹\¸å´ü\̤Íè²Ê³ØÉô\­¢¾ðÊó¥á¥Ç¥£¥¢³Ø²Ê\FI1¥á¥Ç¥£¥¢±é½¬C(CG)(¿¹Ã«Í§¾¼)·î34\Âè04²ó

»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë̾¤Ç¡¤.pde¥Õ¥¡¥¤¥ë¤Î¤ßÄó½Ð¤·¤Æ¤¯¤À¤µ¤¤¡¥

Äó½ÐÄù¤áÀڤꡧ12·î14Æü¡Ê¶â¡Ë 18:00

²ÝÂê1

°Ê²¼¤Î¥¢¥Ë¥á¡¼¥·¥ç¥ó¤òºîÀ®¤·¤Ê¤µ¤¤¡¥¸«¤¿Ìܤ¬Æ±¤¸¤Ç¤¢¤ì¤Ð»ÈÍѤ¹¤ë¸÷¸»¤Î¼ïÎà¤ÏÌä¤ï¤Ê¤¤¡¥

Äó½Ð¥Õ¥¡¥¤¥ë̾¡§BASIC4_1.pde

¥Ò¥ó¥È¡§ ¸÷¸»¤Ë¤è¤ë¿Þ·Á¤Î¿§¤Î·×»»¤Ï¡¤¿Þ·Á¤ÎĺÅÀ¤´¤È¤Ë¹Ô¤ï¤ì¤ë¤¿¤á¡¤¾åµ­¤Î¥¢¥Ë¥á¡¼¥·¥ç¥ó¤òºî¤ë¤¿¤á¤Ë¤Ï¡¤¾®¤µ¤Ê»°³Ñ¡¤¤â¤·¤¯¤Ï»Í³Ñ¤òÉߤ­µÍ¤á¤¿Ê¿Ì̤òÍÑ°Õ¤¹¤ëɬÍפ¬¤¢¤ë¡¥

plane.png

Ǥ°Õ²ÝÂê

¥À¥ó¥¹¥Û¡¼¥ë¡Ê¤Ã¤Ý¤¤¡Ë¶õ´Ö¤òºî¤ì¡¥

Äó½Ð¥Õ¥¡¥¤¥ë̾¡§ADVANCE4_1.pde

exa.png

¥Ò¥ó¥È¡§¾åµ­¤Î¥é¥¤¥È¤ÏÁ´¼ïÎà¹ç¤ï¤»¤Æ·×8¸Ä¤Þ¤Çºî¤ì¤ë

¥Ò¥ó¥È¡§¥é¥ó¥À¥à¤Ê¸þ¤­¤Î¥Ù¥¯¥È¥ë¤òÀ¸À®¤¹¤ë¥³¡¼¥ÉÎã¤ò¼¨¤¹¡¥Àµµ¬²½¡Ê¥Ù¥¯¥È¥ë¤ÎŤµ¤ò1¤Ë¤¹¤ë¤³¤È¡Ë¤·¤Æ¤¤¤ë¤³¤È¤ËÃí°Õ¤¹¤ë¡¥

   float ldx = random(-1, 1);
   float ldy = random(-1, 1);
   float ldz = random(-1, 1);
   float l = sqrt(ldx * ldx + ldy * ldy + ldz * ldz);
   ldx /= l;
   ldy /= l;
   ldz /= l;

¥È¥Ã¥×   ¿·µ¬ °ìÍ÷ ¸¡º÷ ºÇ½ª¹¹¿·   ¥Ø¥ë¥×   ºÇ½ª¹¹¿·¤ÎRSS