หลายท่านอาจจะยังสงสัยว่าทำไมจึงเป็นแบบนั้น
เพราะการตลาดงั้นเหรอ ? อาจจะจริงในส่วนหนึ่ง
ผมไป search มาครับ เพิ่มเติม
http://ph.hardwarezone.com/news/view...d=11222&cid=11
ต่อจากนี้ไปเป็นความเห็นส่วนตัวนะครับ
เนื่องจากผมเขียนโปรแกรมเกี่ยวกับเกมส์ 3D อยู่มานานพอสมควร
ก็เริ่มตั้งแต่ 0 จากการศึกษาเอง จนมาตอนนี้ก็กำลังทำเกมส์ของตัวเองอยู่ โดยใช้ 3D Engine
สำหรับการเรนเดอร์จากที่อื่น ( สำหรับการ Render เท่านั้น ) ก็ไปได้เรื่อย
จนได้เจอกับปัญหาหนึ่งที่ คนเขียนโปรแกรมต้องมานั่งปวดหัวกับมัน
ซึ่งก็คือ " Shader FX " ที่มีความสำคัญกับเกมส์สมัยนี้มากๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆ ถึงมากที่สุด
ทำให้เกมส์สวยงามจนคุณทั้งหลายหลงไหล
แต่เจ้ากรรม Shader มันไม่ได้เขียนด้วย ภาษาโปรแกรมทั่วไป แต่มันเขียนด้วย HLSL -*-
การจะทำความเข้าใจภาษา HLSL (High Level Shader Language) นั้นไม่ใช่เรื่องง่าย
ถึงแม้ว่ามันจะเป็น High Level แล้วก็ตาม
ขนาดผมจับแต่ C++ / C ที่เขียนยุ่งยาก
มานานแล้ว จนชิน และรู้สึกธรรมดาๆกับมันแล้ว พอเจอแบบนี้ยังเครียด
เพราะมันต้อง คำนวณ ๆๆๆๆๆๆๆๆ แล้วก็ คำนวณ ๆๆๆๆๆๆๆๆ เพื่อที่จะเอาสูตรมาเขียน HLSL
และการเขียนมันขึ้นมาโดยไม่มี Tool ก็ไม่ใช่เรื่องที่ใครๆจะทำได้ง่ายๆ
จากตรงนี้นี่เอง ผมเลยได้ไปควานหา Tool ที่ใช้ในการสร้าง Shader ขึ้นมาใช้ร่วมกับ 3D Engine
ก็ไปเจอจนได้ ....
Tool ของ 2 ค่าย ใหญ่ FX Composer ของ Nvidia และ Render Monkey ของ ATI
หลังจากที่ได้ง่วนอยู่กับ Tool เหล่านี้อยู่ประมาณ 3-4 เดือน
ก็ได้พบสัจธรรมว่า
Tool ของ ATI ใช้ยากชิบ ห.... Interface ก็ดูยาก HLSL ก็ต้องเขียน แยกไปแยกมา
Vertex Shader ส่วน Pixel Shader ส่วน -*- ทั้งๆที่ไฟล์ใช้งานจริง มันก็เป็นแค่ไฟล์ TEXT
ไฟล์เดียว ก็ไม่ทราบว่ามันจะแยกหา ห.. อะไรของมัน
มันอาจจะง่ายสำหรับ คนที่ฝึกใช้มานานแล้ว
ต่างกับ Nvidai มาก FX Composer นั้น ใช้งานง่ายกว่า Interface ดูเข้าใจง่าย
การแก้ไข HLSL ก็ทำได้ง่าย สำหรับผมที่ไม่เคยจับ Shader Programming มาก่อน
ก็ ใช้งานได้ไม่ยาก และที่สำคัญ มันต้องใช้กับการ์ดจอ Nvidia เท่านั้น
จากปัญหาเรื่องของ Tool ผมว่า นักพัฒนาเกมส์คงเลือกอะไรที่ง่ายกว่าและได้ผลดีเป็นแน่
แถมซ้ำ ด้วยคนที่เริ่มต้นใหม่ ก็ยังทำตัวให้คุ้นเคยกับ Nvidia ได้มากกว่า
โดยไม่ต้องไปลงลึกกับ HLSL มากจนเกินไป ก็เลยยิ่งทำให้การเลือกใช้ Tool ของ Nvidia นั้นมากกว่าแน่นอน
และ ... Tool มันต้องใช้การ์ดจอของ Nvidia เท่านั้น เกมส์จึงต้อง อ้างอิงการทำงานของ Shader
ณ ตรงนั้น คือ รับรองการทำงานของ Nvidia ได้เต็มที่
แต่ก็ไม่ได้หมายความว่า ATI จะใช้ไม่ได้นะ ก็แค่มันยืนยันว่า ใช้กับการ์ดจอ Nvidia ได้ดีที่สุดแค่นั้นเอง
เพราะ HLSL มันใช้ได้ทั้ง Nvidia และ ATI
และนี่อาจเป็นสาเหตุหนึงที่ผู้พัฒนาเกมส์ และ Nvidia ทำงานร่วมกัน ได้ดีกว่า ATI
จบแล้วครับ
เพราะการตลาดงั้นเหรอ ? อาจจะจริงในส่วนหนึ่ง
ผมไป search มาครับ เพิ่มเติม
http://ph.hardwarezone.com/news/view...d=11222&cid=11
ต่อจากนี้ไปเป็นความเห็นส่วนตัวนะครับ
เนื่องจากผมเขียนโปรแกรมเกี่ยวกับเกมส์ 3D อยู่มานานพอสมควร
ก็เริ่มตั้งแต่ 0 จากการศึกษาเอง จนมาตอนนี้ก็กำลังทำเกมส์ของตัวเองอยู่ โดยใช้ 3D Engine
สำหรับการเรนเดอร์จากที่อื่น ( สำหรับการ Render เท่านั้น ) ก็ไปได้เรื่อย
จนได้เจอกับปัญหาหนึ่งที่ คนเขียนโปรแกรมต้องมานั่งปวดหัวกับมัน
ซึ่งก็คือ " Shader FX " ที่มีความสำคัญกับเกมส์สมัยนี้มากๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆ ถึงมากที่สุด
ทำให้เกมส์สวยงามจนคุณทั้งหลายหลงไหล
แต่เจ้ากรรม Shader มันไม่ได้เขียนด้วย ภาษาโปรแกรมทั่วไป แต่มันเขียนด้วย HLSL -*-
การจะทำความเข้าใจภาษา HLSL (High Level Shader Language) นั้นไม่ใช่เรื่องง่าย
ถึงแม้ว่ามันจะเป็น High Level แล้วก็ตาม
ขนาดผมจับแต่ C++ / C ที่เขียนยุ่งยาก
มานานแล้ว จนชิน และรู้สึกธรรมดาๆกับมันแล้ว พอเจอแบบนี้ยังเครียด
เพราะมันต้อง คำนวณ ๆๆๆๆๆๆๆๆ แล้วก็ คำนวณ ๆๆๆๆๆๆๆๆ เพื่อที่จะเอาสูตรมาเขียน HLSL
และการเขียนมันขึ้นมาโดยไม่มี Tool ก็ไม่ใช่เรื่องที่ใครๆจะทำได้ง่ายๆ
จากตรงนี้นี่เอง ผมเลยได้ไปควานหา Tool ที่ใช้ในการสร้าง Shader ขึ้นมาใช้ร่วมกับ 3D Engine
ก็ไปเจอจนได้ ....
Tool ของ 2 ค่าย ใหญ่ FX Composer ของ Nvidia และ Render Monkey ของ ATI
หลังจากที่ได้ง่วนอยู่กับ Tool เหล่านี้อยู่ประมาณ 3-4 เดือน
ก็ได้พบสัจธรรมว่า
Tool ของ ATI ใช้ยากชิบ ห.... Interface ก็ดูยาก HLSL ก็ต้องเขียน แยกไปแยกมา
Vertex Shader ส่วน Pixel Shader ส่วน -*- ทั้งๆที่ไฟล์ใช้งานจริง มันก็เป็นแค่ไฟล์ TEXT
ไฟล์เดียว ก็ไม่ทราบว่ามันจะแยกหา ห.. อะไรของมัน
มันอาจจะง่ายสำหรับ คนที่ฝึกใช้มานานแล้ว
ต่างกับ Nvidai มาก FX Composer นั้น ใช้งานง่ายกว่า Interface ดูเข้าใจง่าย
การแก้ไข HLSL ก็ทำได้ง่าย สำหรับผมที่ไม่เคยจับ Shader Programming มาก่อน
ก็ ใช้งานได้ไม่ยาก และที่สำคัญ มันต้องใช้กับการ์ดจอ Nvidia เท่านั้น
จากปัญหาเรื่องของ Tool ผมว่า นักพัฒนาเกมส์คงเลือกอะไรที่ง่ายกว่าและได้ผลดีเป็นแน่
แถมซ้ำ ด้วยคนที่เริ่มต้นใหม่ ก็ยังทำตัวให้คุ้นเคยกับ Nvidia ได้มากกว่า
โดยไม่ต้องไปลงลึกกับ HLSL มากจนเกินไป ก็เลยยิ่งทำให้การเลือกใช้ Tool ของ Nvidia นั้นมากกว่าแน่นอน
และ ... Tool มันต้องใช้การ์ดจอของ Nvidia เท่านั้น เกมส์จึงต้อง อ้างอิงการทำงานของ Shader
ณ ตรงนั้น คือ รับรองการทำงานของ Nvidia ได้เต็มที่
แต่ก็ไม่ได้หมายความว่า ATI จะใช้ไม่ได้นะ ก็แค่มันยืนยันว่า ใช้กับการ์ดจอ Nvidia ได้ดีที่สุดแค่นั้นเอง
เพราะ HLSL มันใช้ได้ทั้ง Nvidia และ ATI
และนี่อาจเป็นสาเหตุหนึงที่ผู้พัฒนาเกมส์ และ Nvidia ทำงานร่วมกัน ได้ดีกว่า ATI
จบแล้วครับ
Comment