Animation

UP

ไปดูมาแล้วครับ ดูโรงหนังสามมิติด้วย ไปดูกับพี่ๆที่ทำงานเตรียมตัวกันอย่างดี ศึกษามาเรียบร้อยว่าถ้าเอาแว่นกลับหัวแล้วมันจะดูเป็น 3D ง่ายขึ้น

แต่ผมก็ได้กระทำสิ่งที่ไม่คาดฝันขึ้นคือ ผมหลับครับ ไม่ใช่ดูรอบดึกเลยด้วย รอบหกโมงห้าสิบ ดูไปได้ประมาณ 40 นาที ตาก็เริ่มปิดเข้าหากัน ..... แล้วก็หลับในที่สุด.... แถมการหลับในโรงหนังครั้งนี้เป็นครั้งแรกที่หลับในขณะที่ดูหนังเพื่อความบันเทิงในโรงหนังเป็นครั้งแรกซะด้วยสิ หลังจากหลับในโรงหนังครั้งแรกคือเมื่อสิบกว่าปีก่อน ซึ่งดูไปเพื่อความซาบซึ้ง และครั้งที่สองดูหนังสารคดีในโรง IMAX ตามคำสั่งอาจารย์

ส่วนครั้งนี้ดูโรงดิจิตอลสามมิติก็สมราคา ภาพใสกิ๊ง และตามปกติของพิกซาร์ที่มีอะไรให้อึ้งตลอด ปล่อยของสารพัดเลยทีเดียว เริ่มตั้งแต่

  • ตัว Texture ของผ้ารวมไปถึงลายผ้าต่างๆนี่เนี้ยบสุดๆ แถมละเอียดด้วย ตรงนี้เข้าใจว่าทำ Bump map กับ Displacement Map เฉยๆ
  • เมฆใน Partly Clouds นี่ถือเป็นสุดยอดเลย
  • ระบบ Soft Body ที่มีมาตั้งแต่ตอนแรททาทูอีที่เวลาตัวละครออกแรงจับอะไรแล้วนิ้วจะเปลี่ยนรูปร่างไปตามแรงกดด้วย สำหรับเรื่องนี้เห็นได้ชัดเลยตอนที่เอาลมเป่าปาก
  • ผมกับขนนี่ใส่กันแบบไม่เกรงใจตอนเรนเดอร์กันเลยทีเดียว มีทุกฉาก แถมยังมีหนวดเคราที่เพิ่มเข้ามาหลังการผจญภัยอีกใส่ใจแม้กระทั่งรายละเอียดเล็กๆน้อยๆ
  • ลูกโป่งที่ผูกไว้ในตัวบ้าน ทั้งหมดถูกสร้างขึ้นมาด้วย Python และใช้ ODE จำลองระบบ Dynamics เพื่อให้การเคลื่อนไหวของลูกโป่งสมจริงที่สุด แน่นอนว่าเชือกและตำแหน่งของเชือก ก็ผ่านกระบวนการนี้ด้วย และที่น่าอัศจรรย์ที่สุดคือ ลูกโป่งทั้งหมดโปร่งแสงดังนั้นจะต้องทำการคำนวณแสงที่ผ่านจากลูกโป่งแต่ละลูกๆด้วย เท่าที่จำได้เหมือนว่าจะใช้ลูกโป่งทั้งหมด 300,000 ลูกนะครับ ก็คูณกันเข้าไป (ข้อมูลตรงนี้ได้มาจากหนังสือ Computer Art ฉบับล่าสุด ลองหามาอ่านกันได้ ราคา 150 บาทแต่คุ้มมาก)
  • ส่วน Gimmick ต่างๆที่เกี่ยวกับแอปเปิลนี่ผมไม่รู้เลยแฮะ ใครรู้เอามาบอกกันหน่อยก็ดีครับ

สำหรับตัวหนัง ผมยังรู้สึกว่าสนุกตามมาตรฐานของพิกซาร์ แต่ว่ายังรู้สึกว่าชอบน้อยกว่าแรททาทูอีกับ The Incredibles อยู่ดี

....แต่ยังมีอีกเรื่องที่ต้องระบาย....

คำพูดแรกที่ผมพูดหลังจากจบ ไม่ใช่คำสรรเสริญเยินยอครับ ไม่ใช่คำชมไม่ใช่คำด่า แต่เป็นคำถาม

มันสามมิติตรงไหนวะ ทำไมมันแบนๆทั้งเรื่องเลย

ถูกต้องครับ ผมมองไม่เห็นภาพเป็นสามมิติเลยแม้แต่ฉากเดียว อาจจะเป็นเพราะความพิการทางสายตาที่ไม่สามารถมองเห็นด้วยการใช้ตาทั้งสองข้างพร้อมๆกันที่ผมพอจะรู้ตัวเองอยู่แล้วเลยทำให้ผมไม่เห็นภาพสามมิติ อย่างตอนที่ผมไปเดินพารากอนครั้งแรกก็ไม่เข้าใจว่าทำไมเพื่อนๆถึงบอกว่าที่แสดงในทีวีมันลอยๆออกมา ไม่เข้าใจว่าไอ้ภาพสามมิติที่เมื่อก่อนเค้าฮิตๆกันมันดูยังไงและถ้าให้เดาก็คือการดูโรงสามมิติทำให้ผมต้องใช้สายตาเป็นอย่างมากจนทำให้ตาล้าและทำให้ง่วงจนหลับไปในที่สุดนั่นเอง

ที่แปลกก็คือผมดู IMAX แล้วเห็นเป็นสามมิตินี่สิ ก็เลยทำให้ผมก็เลยยอมเสี่ยงที่จะไปดูเรื่องปู่ซ่าบ้าพลังในรูปแบบสามมิตินั่นเอง

K-Bank ads

โฆษณาซีรีย์ล่าสุดของ K-Bankเห็นมาหลายอันละ ท่าทางจะหมดเงินไปไม่น้อย เดาว่าน่าจะมีแปดตอน เลยลองรวบรวมจาก Youtube ดู

WPF tips 1

Do not animate any element that uses bitmap effect. It will forces WPF to use software rendering.

Technorati Tags: , , , ,

Client-Side Animation ใน ASP.NET

หลังจากที่นั่งเล่นกับ Animation Framework ไปนิดนึงใน ASP.NET แล้วก็มารู้เอาทีหลังว่ามันก็ไม่ได้ยากเท่าไหร่

คราวที่แล้วใช้ script.aculo.us ก็ทำงานได้แล้วก็เลยลองเปลี่ยนมาใช้ ASP.NET Animation Framework ใน AJAX Control Toolkit ดู ใช้โค้ดจากหน้านี้มาดัดแปลงหน่อยโดยการเพิ่มไฮไลท์เข้าไปตอนอัพเดทข้อมูลแล้ว

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="animation_act.aspx.cs" Inherits="animation_act" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title>Animation ACT</title>
    <style type="text/css">
    #result{
        width:200px;
        height:200px;
        background:#fefeff;
        border-top: #b9b95c 3px solid;
        background-color: #ffffcc;
        padding: 5px;
        margin-top:10px;
    }
    </style>

    <script language="javascript" type="text/javascript">
// <!CDATA[
var img;
function btnHello_onclick() {
    img = new Sys.UI.Control($get("loadingImg"));
    var name = $get("txtName").value;
    var wRequest = new Sys.Net.WebRequest();
    wRequest.set_url("Hello.ashx?Name=" + $get("txtName").value);
    wRequest.set_httpVerb("GET");
    wRequest.add_completed(OnWebRequestCompleted);
    wRequest.invoke(); 
    img.set_visible(true);   
}
function OnWebRequestCompleted(executor, args){
    var target = $get('result');
    target.innerHTML = executor.get_responseData();
    var par = new AjaxControlToolkit.Animation.ParallelAnimation();
    par.add(new AjaxControlToolkit.Animation.ColorAnimation(target, 0.5, 24, 'style', 'backgroundColor', '#FFFF00', '#ffffcc'));
    par.play();
    img.set_visible(false); 
}

// ]]>
    </script>

</head>
<body>
    <form id="form1" runat="server">
        <asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true">
        <Scripts>
          <asp:ScriptReference Assembly="AjaxControlToolkit" Name="AjaxControlToolkit.Common.Common.js" />
          <asp:ScriptReference Assembly="AjaxControlToolkit" Name="AjaxControlToolkit.Compat.Timer.Timer.js" />
          <asp:ScriptReference Assembly="AjaxControlToolkit" Name="AjaxControlToolkit.Animation.Animations.js" />
        </Scripts>
        </asp:ScriptManager>
        <div>
            <input id="txtName" type="text" />
            <input id="btnHello" type="button" value="Say hi" onclick="return btnHello_onclick()" /><img
                src="24-1.gif" id="loadingImg" style="display: none" />
        </div>
        <div id="result" runat="server" style="display:block;">
        </div>
    </form>
</body>
</html>

ตรงส่วนที่ทำตัวหนาไว้คือส่วนที่เพิ่มมา เพื่อใช้ Animation Framework สังเกตว่าต้อง reference ไปที่ javascript ของ Ajax Control  Toolkit ด้วย วิธีใช้ก็แกะๆเอาจาก Reference จริงๆตรงส่วนที่เป็น JavaScript จะใช้ ColorAnimation อย่างเดียวก็ได้ ไม่ต้องใช้ PararellAnimation

ถ้าให้เทียบกับ script.aculo.us แล้ว ก็ยังห่างชั้นอยู่มากเลยทีเดียว จำนวน effects น้อย ต้องนั่งทำ effect เอง คู่มือกับวิธีใช้ก็ไม่ค่อยมี จริงๆแล้ว Animation Framework อันนี้เหมือนจะให้เป็นพื้นสำหรับสร้าง Ajax Control ซะมากกว่าจะหยิบมาใช้แบบเป็นครั้งคราว กรณีหลังนั้นให้หันไปใช้ Declarative Animation น่าจะเหมาะกว่ามั้ง