Web3D & SIGGRAPH Conferences 2012, Los Angeles, CA, USA. Diary : Day 2

LOG
PART 1 : แว๊น | PART 2 : สำรวจโลก | PART 3 : งานวันแรก

PART 4 | วันที่ 5 สิงหาคม 2555 : วันที่ 2 และเป็นวันสุดท้ายของงาน Web3D Conference 2012 และเป็นวันแรกของงาน SIGGRAPH 2012

หลังจากวันแรกของงานผ่านไปได้ด้วยดี วันนี้กิจกรรมก็เหมือนวันแรกครับ นำเสนอเปเปอร์และ Tutorial, Workshop ปกติ แต่ที่ต่างไปมากคือจำนวนคนครับ มีมากเยอะมากๆ ก็เนื่องจากงาน SIGGRAPH นี่แหละครับ

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

เสร็จจากการลงทะเบียน SIGGRAPH แล้วผมก็ขึ้นไปที่ห้องของงาน Web3D ครับ แล้วทีนี้เขาเลื่อนเวลานิดหน่อย เลยมีเวลาไปช๊อปหนังสือครับ ซึ่งก็อยู่ห้องข้างๆกันนี่เอง

มีหนังสือที่น่าสนใจหลายเล่มมากครับ แต่ก็ไม่ได้สอยมาซักเล่มเลย แฮ่ๆ

หลังจากนั้นก็กลับมาที่ห้องครับ มาฟังเรื่อง WebGL โดย Neil Trevett จาก Khronos Group ครับ ถึงแนวทางของ OpenGL ES, WebGL, WebCL และอื่นๆ ที่น่าสนใจมากคือเขาบอกว่า WebCL จะ release ตัวเต็มปีหน้าครับ ซึ่งมันเป็นอะไรที่เป็นอนาคตของ Web3D เลย เพราะปัจจุบันยังมีปัญหาเรื่อง Performance อยู่ครับ ต้องการ Performance Boost ซึ่งหาก WebCL มาจะลบจุดนี้ไปได้เลย มุมมองผมในปัจจุบันผมว่า WebGL ก็มีพลังมากพอในการทำอะไรหลายๆอย่างที่เป็น Commercial แล้วนะครับ และสำหรับงานวิจัยหลายๆงาน ก็นำมาใช้แล้ว งาน Simulation และ Visualization ทางวิศวกรรมและทางการแพทย์ก็เห็นมีการนำมาใช้แล้วในยุโรป ซึ่งผมเห็นว่าอนาคตสดใสดีครับ

ถัดจากนั้นก็มีคนจาก Google มาคุยเรื่อง WebGL, เอา WebGL Experiments หลายๆตัวมาโชว์ ซึ่งผมเคยเห็นหมดแล้ว ไม่ได้รู้สึกตื่นเต้นอะไร แต่ก็มีหลายๆคนสนใจครับ เพราะคนที่เข้ามาฟังส่วนใหญ่ยังอยู่ใน Platform ที่ไม่ใช่แบบเปิด ยังใช้ VRML/X3D กันอยู่ ยังไม่ได้เข้าสู่โลก WebGL เต็มๆ เขาก็มาโชว์อนาคตที่น่าสนใจของเทคโนโลยีตัวนี้ครับ ก็ดีเหมือนกัน โดยรวมผมชอบเรื่องความฮาของพี่แก ฮ่ะ ๆ ๆ ;P

หลังจากเสร็จกิจกรรมช่วงเช้าก็มากินข้าวกลางวันเหมือนเดิมครับ

แล้วก็เริ่มกิจกรรมช่วงบ่ายกันเลย เริ่มด้วยเรื่อง Declarative 3D นำโดย Kristian Sons และ Johannes Behr ครับ ส่วนอีกห้องที่ผมไม่ได้อยู่คือเรื่อง Lightweight Visualization โดย Julien Jomier จาก Kitware ครับ
น่าสนใจดีครับ เขาเอา Binary Compression มาโชว์ แบบว่าเหมือนตัว Performance Boost ที่เคยกล่าวก่อนหน้าอ่ะครับ สามารถเรนเดอร์พ้อยได้เป็นล้านเลย จากปกติไม่กี่แสน เจ๋งดีครับ

หลังจากเสร็จทั้ง 2 กิจกรรมนั้นแล้ว ทุกคนก็มารวมกันที่ห้องเดียวครับ เป็น Session เรื่อง 3D and the Web รวมๆก็คล้ายๆเหมือนไปนั่งรวมกันปล่อยมุขสักพักนึงอ่ะครับ ถึงมาเข้าเรื่อง ฮ่ะ ๆๆ

หลังจาก Session จบลงก็เป็นช่วงของการประกาศผลรางวัลสำหรับ Best Paper Award และ Best Poster Award ครับ ซึ่งผลก็คือ

Best Poster Award, Web3D Conference 2012
Best Poster Award, Web3D Conference 2012

ก็ดีใจครับ ;P
หลายๆคนก็มาแสดงความยินดีครับ ได้นามบัตร ได้คนชวนไปเรียน ส่วนตัวคิดว่าคุ้มค่าครับ เดี๋ยวปีหน้าเอาอีก โดยปีหน้า Web3D Conference 2013 อาจไปจัดที่สเปน หรือไม่ก็ที่เยอรมนีครับ ยังไม่มีการยืนยัน จากที่ฟังตอนเขาปิดงาน
หลังจากจบงาน Web3D Conference 2012 แล้วก็ไปต่อที่งาน SIGGRAPH 2012 ครับ เป็นช่วง SIGGRAPH Paper Fast Forward ซึ่งเป็นอะไรที่ฮามากๆ หลายคนทำวิดีโอนำเสนอได้ฮาสุดๆเป็นอะไรที่ชอบมาก ผมยังไม่เคยเห็นแบบนี้ในไทยเลยครับ รักเลย ฮาๆๆ

SIGGRAPH 2012 Paper Fast Forward
SIGGRAPH 2012 Paper Fast Forward

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

SIGGRAPH 2012 Paper Fast Forward
SIGGRAPH 2012 Paper Fast Forward

หลายๆเปเปอร์ หลายๆโปรเจค น่าสนใจมากๆๆๆๆครับ หากใครมีโอกาสปีถัดๆไปอยากให้มาดูกันครับ หลายๆอย่างไม่น่าเชื่อจริงๆว่ามันเกิดขึ้นแล้ว ;P
หลังจากจบกิจกรรม Paper Fast Forward ก็ออกไปหาข้าวกินกลับที่พักครับ ซึ่งคนเยอะมากๆเลยครับ

SIGGRAPH 2012, LA Convention Center, LA, CA, USA
SIGGRAPH 2012, LA Convention Center, LA, CA, USA

โดยสรุปแล้ว งานสนุกมาก แล้วก็ฟินด้วยครับ เป็นปีแรกด้วย แล้วได้รางวัลอีก ฟินครับ ต้องพัฒนามากขึ้นๆๆๆไปอีกครับ หวังว่าปีหน้าคงได้เจอกันที่งาน Web3D Conference 2013 และสำหรับ SIGGRAPH 2013 ที่จะจัดที่ Anaheim, CA ครับ อยู่ใกล้ Irvine กว่า LA อีก น่าจะได้มีอะไรสนุกๆทำอีกหลายอย่างเลยครับ ;D

Web3D & SIGGRAPH Conferences 2012, Los Angeles, CA, USA. Diary : Day 1

Part 3. วันที่ 4 สิงหาคม 2555 : วันแรกของงาน Web3D Conference 2012 เริ่มก่อนหน้า SIGGRAPH ไป 1 วัน
(Link สำหรับ Part 1 และ Part 2)

วันนี้ก็เดินออกมาจากโรงแรมตามแผนที่วางไว้เมื่อวันก่อนที่มาเดินสำรวจไว้แล้ว มาได้ตรงเวลาแบบเป๊ะๆเลยเพราะว่าตื่นสาย ใจจริงอยากจะเผื่อเวลาไว้แต่ว่าตื่นสายจริงๆ ฮ่ะๆๆ ๆ วันนี้คนยังไม่มากเท่าไหร่ เพราะมีงาน Web3D Conference งานเดียว แต่สำหรับคนที่ส่งโปสเตอร์สำหรับงาน SIGGRAPH 2012 เขาก็มาติดโปสเตอร์กันวันนี้แหละครับ บางคนติดก่อนหน้านั้นไปแล้วก็มี

LA Convention Center
LA Convention Center

หลังจากผมเดินหลงอยู่ใน LA Convention Center ได้สักพัก เห็นคนทำหน้าหลงๆเหมือนกันก็ถามๆกันจนมาเจอ Hall นี้ ถึงกับโล่งใจว่าเจอสักที แล้วก็ขึ้นบันไดเลื่อนมาที่ห้องสำหรับงานเปิด Web3D Conference 2012 ด้วยใจร้อนรนว่าเรามาถึงเลทไปห้านาทีแล้ว แฮ่ๆ

Web3D Conference 2012 at LA Convention Center, LA, CA, USA
Web3D Conference 2012 at LA Convention Center, LA, CA, USA

หลังจากลงทะเบียนแล้ว ก็ได้ป้ายชื่อกับกระเป๋ามาครับ : )

Web3D Conference 2012
Web3D Conference 2012

หลังจากนั้นก็นั่งฟังป๋าๆเขาพูดเปิดงาน อธิบาย นู่น นี่ นั่น และกำหนดการของแต่ละวัน ทำอะไรบ้าง อะไรยังไง หลังจากทุกอย่างเรียบร้อยแล้วก็แยกห้องตามแต่ละเรื่องครับ จะแบ่งห้องนำเสนอเปเปอร์กับห้อง Tutorial, Workshop เป็นคนละห้องกัน ก็แล้วแต่คนชอบครับ ตามหัวข้อเรื่องสนใจอะไรก็ไปตามห้องนั้นครับ

ระหว่างนั้นก็มีคนซุบซิบตามหาชื่อแต่ละคนว่ามาไหม มีโปสเตอร์มาไหม จนได้ยินชื่อคุ้นๆ เลยเข้าไปถามว่า เมื่อกี้เรียกอะไรหัสดีเหรอครับ พี่ staff เขาก็เลย อ้ออ นี่หัสดีเหรอ ได้เอาโปสเตอร์มาไหม ผมก็ตอบอย่างภาคภูมิว่า ไม่ได้เอามาครับ ฮ่ะๆๆ เขาก็เลยให้เราส่ง PDF ให้ แล้วเขาก็เอาไปปริ๊นให้ครับ ดีจริงๆ ;D

หลังจากกิจกรรมภาคเช้าเสร็จสิ้นลง ก็กินข้าวกันครับ กับเหล่า Web3D geek คนอื่นๆ

Web3D Conference 2012
Web3D Conference 2012

ผมไปคนเดียวไม่รู้จักใครเลยครับ ไปนั่งฟังเขาคุยกัน เขาถามมาเราก็ตอบไป ส่วนใหญ่นั่งฟังครับ มีปัญหานิดหน่อยคือผมฟังภาษาอังกฤษสำเนียงสเปน อิตาลี ไม่ค่อยคล่องนัก แต่ก็พอรู้เรื่องอยู่มั้ง แต่ฟังยากจริงๆ พอดีหลงมานั่งอยู่โต๊ะนี้ครับ จากการสำรวจดู งานนี้ผมเด็กสุดครับ รู้สึกดี ฮาๆๆ
อ๊ะ! มีอีกคนนึงชื่อ Sergiy Byelozyorov คนนี้พูดเก่งมากครับ พูดไม่หยุด พูดตลอด เหมือนว่าจะมาจากยูเครนหรือไงนี่แหละครับ จำไม่ค่อยได้ แต่ว่าเขาเรียนอยู่ที่เยอรมันครับ ที่ Universität des Saarlandes ที่ Saarbrücken ก็มีเรื่องคุยกันเยอะเลย แต่เอาเข้าจริงก็ไม่ได้จะมีเยอะขึ้นนักหรอกครับ เพราะผมเคยอยู่แต่ München แค่เขาหันมาคุยกับเราบ่อยขึ้นแค่นั้น ฮ่ะๆๆ เขามี Workshop ช่วงบ่ายของวันนี้ด้วยครับ หัวข้อ Virtual Worlds in the Web ถือว่าได้เพื่อนมาอีกคนเพราะอายุห่างกันไม่มากครับ เขาเป็นพี่ผม 3 ปีเอง ถือว่ารุ่นๆเดียวกัน หากจะเทียบกับคนอื่นในงานซึ่งเป็นระดับป๋ากันเกือบหมดแล้ว

หลังจากรับประทานอาหารเสร็จแล้ว ก็กลับเข้าสู่ห้องสัมมนาครับ โดยช่วงแรกของบ่ายนี้จะเป็น Keynote ของ Prof. Markus Gross จาก Disney Research – Zurich ครับ มาเล่าถึงประวัติการเกิด Animation เก่าก่อนเลย การเริ่มต้นของ Computer Graphics ไล่จาก 2D มาเป็น 3D โดยนำตัวอย่างงานวิจัยของ Disney มาตั้งแต่แรกๆเลยครับ ว่าเขาทำอะไรกันมา จุดกำเนิดของ Mickey Mouse แล้วก็มีอะไรหลายอย่างขำๆให้ดูเยอะเลยครับ น่าสนใจมากเลยทีเดียว : )

หลังจากเสร็จสิ้นกิจกรรมลงช่วงเย็นก็มานำเสนอโปสเตอร์ครับ เราก็มายืนประจำโปสเตอร์ แต่ผมไม่ค่อยยืนกับพี่หรอกครับ เดินว่อนมาว่อนมา ถามงานคนอื่นไปเร่ือย มีบางงานน่าสนใจมากครับ เกี่ยวกับ Geospatial Visualization ชื่อ “Pervasive Touristic Location Based Service Mobile App with a Social Perspective” แต่เขาใช้ Unity ไม่ใช่ WebGL เป็นบริษัทจากอิตาลีครับชื่อ Fondazione Graphitech ผมยืนคุยด้วยอยู่นานเลยแหละครับ เพราะผมสนใจเกี่ยวกับ Geospatial Visualization มากๆ จะไปแอบดูดข้อมูลว่าเขาเอาข้อมูลจากไหนมาทำ ก็สนุกดีครับ ส่วนที่น่าสนใจอีกงานแต่ผมก็ไม่เข้าใจคืองาน “MEDX3DOM: MEDX3D for X3DOM” จาก Vicomtech ครับ เป็นการนำ X3DOM มาใช้สำหรับงาน Visualization ทางการแพทย์ ส่วนงานอื่นๆ เข้าไปดูได้ที่นี่เลยครับ ผมก็อธิบายไม่หมด มันจะยาวเกินไปครับ ;P Web3D 2012 Program

Posters of Web3D Conference 2012 at LA Convention Center, LA, CA, USA
Posters of Web3D Conference 2012 at LA Convention Center, LA, CA, USA
Posters of Web3D Conference 2012 at LA Convention Center, LA, CA, USA
Posters of Web3D Conference 2012 at LA Convention Center, LA, CA, USA
Posters of Web3D Conference 2012 at LA Convention Center, LA, CA, USA
Posters of Web3D Conference 2012 at LA Convention Center, LA, CA, USA

หลังจากนำเสนอโปสเตอร์ไปจนอิ่มแล้ว น่าจะสักประมาณ 6 โมงกว่าๆครับ ก็เสร็จงาน เดินทางกลับโรงแรม แล้ว LA Convention Center อยู่ติดๆกับบ้านของ LA Laker ครับ สงสัยมีแข่งบาสจบพอดี มีแต่เด็กฮิปเต็มไปหมดเลย ฝั่งตรงข้ามถนนของตึกก็มีลานกว้างๆคนก็เล่นบาสกันเยอะแยะมาก ก็เป็นสีสันดีครับ

วันนี้ก็ราบรื่นดีครับ กับการลุยงานคนเดียวที่นี่ ไว้มาต่อวันที่ 2 ครับ ;D

[How to] Level Of Detail (LOD) – X3D(OM) Language [Tutorial in Thai language]

Level Of Detail (LOD) นั้นเป็น Grouping node ตัวหนึ่งในภาษา X3D (หรือเอามาใช้กับ X3DOM ก็ได้ซึ่งใช้ภาษาในการเขียนเป็น X3D เหมือนกัน)
โดย node นี้จะถูกใช้เพื่อการเพิ่มประสิทธิภาพในการเรนเดอร์วัตถุใน Scene เนื่องจากใน Scene ของเรานั้นจะมี Viewpoint อยู่อย่างน้อย node ซึ่งจะเป็นจุดกล้องของเรานั่นเอง ซึ่งมีความห่างในแกน x, y, z กับวัตถุ ซึ่งระยะห่างนี้เราสามารถกำหนดความละเอียดให้กับวัตถุที่เรามองเห็นได้ ลองนึกภาพว่าคุณมองวัตถุที่เห็นไกลๆแล้วคุณเห็นมันไม่ชัด คุณเดินเข้าไปใกล้ขึ้นเรื่อยๆ วัตถุนั้นก็จะชัดขึ้นเรื่อยๆตามลำดับ หากใครที่เคยเล่นเกมแนว 3D มาคงจะพอนึกภาพออกว่าเป็นยังไง
และความละเอียดนั่นเองที่เราจะถูกถึงการเพิ่มประสิทธิภาพของการเรนเดอร์ทั้ง Scene นั้นโดยรวม โดยเฉพาะอย่างยิ่งกับ Scene ที่มีวัตถุหลายๆวัตถุ เราก็ควรจะให้ความสำคัญกับวัตถุที่เราอยู่ใกล้ที่สุด คือ ให้เรามองเห็นสิ่งนั้นชัดที่สุด ละเอียดที่สุด นั่นหมายความว่า ยิ่งความละเอียดเยอะ ยิ่งมี Polygon มาก มีจุดมากนั่นเอง ซึ่งจำนวนจุด (Point) จำนวนรูปสามเหลี่ยม (Triangle) นั่นส่งผลต่อประสิทธิภาพในการเรนเดอร์และค่า Frame rate (หากดู Monitor ของ X3DOM คุณจะเห็นค่านี้แสดงเป็น x FPS โดย x เป็นตัวเลข Floating Point) หรือจากระยะหนึ่ง เข้าไปแล้วให้วัตถุเปลี่ยนไป เข้าไปอีกก็เปลี่ยนไปอีก ก็ได้แล้วแต่เราจะทำครับ

หลังจากพอเข้าใจหลักการคร่าวๆว่าโหนดนี้มีประโยชน์อย่างไร เรามาถึงวิธีการเขียนโหนด LOD กันครับ

<LOD center="0 0 0" range="10 15 20">

	<Group>
		<Shape DEF="Box">
			<Appearance DEF="BlueColor">
				<Material diffuseColor="0.0 0.2 0.8" />
			</Appearance>
			<Box />
		</Shape>
	</Group>

	<Group>
		<Shape>
			<Appearance USE="BlueColor"></Appearance>
			<Cone />
		</Shape>
	</Group>

	<Group>
		<Shape>
			<Appearance USE="BlueColor"></Appearance>
			<Cylinder />
		</Shape>
	</Group>
						
	<WorldInfo info='"null node"' />

</LOD>

จาก Source code
1. เริ่มประกาศโหนด LOD โดยกำหนด Attribute ให้ center มีค่าเป็น 0 0 0 นั่นหมายถึงเริ่มนับตำแหน่งของ LOD ที่จุด 0 0 0 คือจุดกลางของโหนดครับ (ทั้งนี้ไม่นับรวมถึงโหนด Transform นี่ครอบโหนด LOD นี้อีกที) และ range คือระยะห่างจากโหนด LOD ครับ จากตัวอย่างผมให้ระยะห่างเป็น 3 ช่วงคือ 10 15 และ 20 ครับ
2. จากนั้นแบ่งกลุ่มของวัตถุครับ ดังจะเห็นในบรรทัดที่ 3, 12 และ 19 นั่นคือการแบ่งช่วงระยะห่าง โดยนับจาก range คือ ระยะห่างจาก LOD ช่วง 0-10 จะแสดงวัตถุในกลุ่มแรก และมากกว่า 10-15 ก็จะแสดงวัตถุในกลุ่มที่สอง ตามด้วยช่วงมากกว่า 15-20 คือแสดงวันถุในกลุ่มที่สาม และหากระยะห่างจากจุด LOD มากกว่า 20 ขึ้นไป จะแสดงค่าตามบรรทัดที่ 26 ครับ คือบรรทัดนั้นผมกำหนดให้เขาเป็น null node นั่นหมายความว่า จะไม่แสดงอะไรเลย LOD นั้นก็จะหลายเป็นค่าว่างเลยครับ จะไม่มีจุดหรือสามเหลี่ยมอะไรที่ถูกเรนเดอร์ใน LOD นั้นแล้วครับ

จากตัวอย่างผมใช้วิธีเขียนวัตถุโดยใช้ Shape ในการเริ่มสร้างวัตถุง่ายๆขึ้นมาเช่น Box หรือ กล่อง, Cone หรือ กรวย และ Cylinder หรือวัตถุทรงกระบอกโดยให้ค่าเริ่มต้นเป็นค่าพื้นฐาน (Default) ตัววัตถุนั้นๆไป หากต้องการลูกเล่นเพิ่มเริม เราสามารถใช้โหนด Inline ในการเรียกวัตถุจากภายนอกไฟล์มาแทนในกลุ่มนั้นก็ได้ครับ โดยแทนโหนด Shape ไปครับ : )

[Gallery] Web3D, Bitmanagement Software and Inter Coop Sharing#2

[Gallery] Web3D, Bitmanagement Software and Inter Coop Sharing#2 at Suranaree University of Technology, Nakhon Ratchasima, Thailand

Bitmanagement Software's Logo
Bitmanagement Software's Logo
BS Contact on mobile, tablet and cross-platform (Windows, Mac, and Linux)
BS Contact on mobile, tablet and cross-platform (Windows, Mac, and Linux)
3D Avatars by Bitmanagement Software
3D Avatars by Bitmanagement Software
Q&A
Q&A

เริ่มต้นกับ X3DOM | Getting Started with X3DOM

“Post นี้เหมาะสำหรับผู้ที่ต้องการเริ่มศึกษา/เล่นกับ X3DOM แต่ไม่รู้จะเริ่มยังไงครับ และถ้ามีพื้นฐานภาษา X3D แล้วจะติดปีกบินได้เลย ;D”

พื้นฐานและสิ่งที่คุณควรจะมี
1. Web Browser ที่รองรับ WebGL, HTML5 (Canvas) เช่น Google Chrome, Mozilla Firefox (แนะนำให้อัพเดทเป็นเวอร์ชั่นล่าสุดครับ ใครไม่เคยอัพเลยก็อัพซะนะครับ) **ล่าสุด Opera Next Version 12 ก็รองรับ WebGL แล้วนะท่าน**
2. พื้นฐานด้าน 3D เล็กๆน้อยๆพอเขี่ยๆสะกิดได้
3. ความรู้ในภาษา JavaScript สำหรับพอเล่นกับ X3DOM Runtime API ได้ (สำหรับในเชิงลึกหลังจากนี้)
4. ความรู้ในภาษา XML เพื่อให้เข้าใจภาษา X3D ได้ง่ายยิ่งขึ้น

ปัญหา
1. สำหรับคนที่มีไฟล์ VRML (.wrl) หรือ X3D (.x3d) อยู่แล้ว อยากอัพเกรดคุณภาพชีวิต เบื่อกับการใช้ Plugin ในการเปิด Web3D แล้ว อยากมาโลดแล่นบน Web Browser แบบ Unplugin โดยใช้ WebGL แทน แต่ไม่รู้จะทำไง เขียน WebGL ตรงๆก็อาจจะยากลำบากจนท้อแท้หน่ายชีวิตกัน.. จะทำยังไง?
2. มีไฟล์จาก Maya อยู่แล้ว แนะนำให้ไปอ่านโพสเก่าผม อันนี้
3. สำหรับคนที่มีไฟล์จาก 3Ds Max (.3ds) สามารถทำได้โดยการ Import ไฟล์นั้นเข้าไปที่ Blender (ต้องมี Blender ใช้ก่อนนะครับ ดาวน์โหลดและใช้ฟรีครับ) และ Export จาก Blender มาเป็น .x3d อีกที หรือใช้ BS Contact Plugin ทำการ Export ออกมาก็ย่อมได้

หลังจากมีไฟล์ X3D แล้ว สิเฮ็ดหยังต่อ?
1. ไฟล์ที่เราต้องการคือ x3dom.js
คำถาม เอามาจากไหน?
คำตอบ ดาวน์โหลดได้จาก X3DOM
2. โหลดมาแล้ว ทำไงต่อ?
คำตอบ เรียกใช้สิคร๊าบบบ

<script type="text/javascript" src="x3dom.js"></script>

ต่อจากนั้น เราก็ประกาศ ในหน้า HTML/XHTML ของเราได้เลยครับ
เช่น (เริ่มจากใน body เลยนะครับ)

<X3D xmlns="http://www.web3d.org/specifications/x3d-namespace"  showStat="false" showLog="false" x="0px" y="0px" width="400px" height="400px">
    <Scene>
        <Viewpoint position='0 0 10' />
        <Shape>
            <Appearance>
                <Material diffuseColor='0.603 0.894 0.909' />	
            </Appearance>
            <Box DEF='box'/>
        </Shape>
    </Scene>
</X3D>

อย่างเช่นโค้ดข้างบนนั้นคือ จะได้กล่องมา 1 กล่องครับ

ทั้งหมดนี้ก็เป็นพิธีกรรมในการเริ่มต้นครับ ลองเปิด Web Browser ของคุณได้เลย จะปรากฏกล่องให้คุณหมุนเล่นแล้วแหละครับ
Welcome to Web3D World ครับ : )

สำหรับตัวอย่างอื่นๆสามารถดูได้จากทาง Website ของ X3DOM ได้โดยตรงหรือดูจากหน้า X3DOM ของผมได้เหมือนกันครับ ไม่ต่างกันครับ : )

Get navigation type and set point rendering by using X3DOM Runtime API

First you have to call this method: ready() It is therefore possible to execute custom action by overriding this method in your code:

x3dom.runtime.ready = function()
{
	var id = "x3dom-scene";
	var configure = document.getElementById(id);
	
	/* Default view */
	configure.runtime.showAll();
	getNavigationType(id);
	
	/* =============================================================
	 Arguments:	show (boolean) – true/false to show or hide the debug window
	 Returns: The current visibility status of the debug window (true/false)
	 Displays or hides the debug window. If the parameter is omitted, the current visibility status is returned.
	 ============================================================= */
	configure.runtime.debug(false);
	
	/* =============================================================
	 Arguments:	mode (boolean) – true/false to enable or disable the stats info
	 Returns:The current visibility of the stats info (true/false)
	 Get or set the visibility of the statistics information.
	 If parameter is omitted, this method returns the visibility status as boolean.
	 ============================================================= */
	configure.runtime.statistics(false)
}

That’s your X3DOM scene ID is “x3dom-scene” and your default viewpoint is “showAll”

function getNavigationType(id)
{
	var configure = document.getElementById(id);
	
	var navigationTypeName = configure.runtime.navigationType();
	var currentViewpoint = configure.runtime.viewpoint();
	
	console.log(navigationTypeName);
	console.log(currentViewpoint);
	
	document.getElementById('showNavigationType').innerHTML = navigationTypeName;
	setSpeed(0, id);
}

This method is used to show your current navigation type and your current viewpoint in your X3DOM scene and appear the result to your browser console. and Now, I think you should know how to use X3DOM Runtime API method to your X3DOM scene.

So this is the method that doesn’t public on official page of X3DOM Runtime API, togglePoints method. This method is used to change render type from other to point rendering.

function togglePoint()
{
	var configure = document.getElementById("x3dom-scene");
	configure.runtime.togglePoints();
}

The result example:

When this method was called, your geometry will appear like this.

togglePoints Demo