মুভি কান্তি রেভো - পার্ট 1 - বিল্ডিং দ্য 3D ওয়ার্ল্ড

মুভি কান্তি রেভো লোগো।

Movi.Kanti.Revo হল একটি নতুন সংবেদনশীল ক্রোম পরীক্ষা যা Cirque du Soleil দ্বারা তৈরি এবং Subatomic Systems দ্বারা তৈরি যা আধুনিক ওয়েব প্রযুক্তির মাধ্যমে ওয়েবে Cirque du Soleil-এর বিস্ময় নিয়ে আসে৷

3D বিশ্ব নির্মাণ

পরীক্ষাটি শুধুমাত্র HTML5 ব্যবহার করে তৈরি করা হয়েছে এবং পরিবেশটি সম্পূর্ণরূপে মার্কআপ এবং CSS দিয়ে তৈরি করা হয়েছে। স্টেজে সেট পিসগুলির মতো, div , img , ছোট video এবং অন্যান্য উপাদানগুলি সিএসএস ব্যবহার করে একটি 3D স্পেসে অবস্থান করে। নতুন getUserMedia API ব্যবহার করে কীবোর্ড বা মাউস ব্যবহার করার পরিবর্তে পরীক্ষার সাথে ইন্টারঅ্যাক্ট করার একটি সম্পূর্ণ নতুন উপায় সক্ষম করেছে, একটি জাভাস্ক্রিপ্ট ফেসিয়াল ডিটেকশন লাইব্রেরি আপনার মাথা ট্র্যাক করে এবং পরিবেশকে আপনার সাথে নিয়ে যায়।

সমস্ত ওয়েব একটি পর্যায়

এই পরীক্ষাটি তৈরি করতে, ব্রাউজারটিকে একটি স্টেজ হিসাবে কল্পনা করা এবং CSS ব্যবহার করে 3D স্পেসে সেট পিস হিসাবে <div> s, ছবি, ভিডিও এবং অন্যান্য উপাদানগুলিকে কল্পনা করা ভাল। প্রতিটি উপাদান, বা সেট পিস একটি 3D রূপান্তর প্রয়োগ করে মঞ্চে অবস্থান করা হয়। আপনি যদি translate3d রূপান্তরের সাথে অপরিচিত হন তবে এটি 3টি প্যারামিটার লাগে, X, Y এবং Z। X একটি অনুভূমিক রেখা বরাবর উপাদানটিকে সরায়, Y উপাদানটিকে উপরে এবং নীচে নিয়ে যায় এবং Z উপাদানটিকে কাছাকাছি বা আরও দূরে সরিয়ে দেয়। উদাহরণস্বরূপ, একটি transform: translate3d(100px, -200px, 300px) উপাদানটিকে 100 পিক্সেল ডানদিকে, 200 পিক্সেল নিচে এবং 300 পিক্সেল দর্শকের কাছে নিয়ে যাবে।

অডিটোরিয়াম নির্মাণ

চলুন শেষ দৃশ্যটি দেখে নেওয়া যাক এবং এটিকে কীভাবে একত্রিত করা হয়েছে তা দেখতে। সমস্ত দৃশ্য তিনটি প্রাথমিক পাত্রে বিভক্ত, বিশ্ব ধারক, একটি দৃষ্টিকোণ ধারক এবং মঞ্চ। ওয়ার্ল্ড কন্টেইনার কার্যকরভাবে দর্শকদের ক্যামেরা সেট আপ করে এবং ব্রাউজারকে বলার জন্য CSS perspective বৈশিষ্ট্য ব্যবহার করে যেখানে দর্শক উপাদানটি দেখবে। #perspective-container এটিতে 3D রূপান্তর প্রয়োগ করে আমাদের দৃষ্টিভঙ্গি পরিবর্তন করতে ব্যবহৃত হয়। অবশেষে, মঞ্চে প্রকৃত সেট টুকরা রয়েছে যা পর্দায় দৃশ্যমান হবে।

<div id="world-container">
  <div id="perspective-container">
    <div id="stage">
    </div>
  </div>
</div>
#world-container {
perspective: 700px;
overflow: hidden;
}

#perspective-container {
{ % mixin transform-style: preserve-3d; % }
{ % mixin transform-origin: center center; % }
{ % mixin perspective-origin: center center; % }
{ % mixin transform: translate3d(0, 0, 0) rotateX(0deg) rotateY(0deg) rotateZ(0deg); % }
}

স্টেজ ভিজ্যুয়ালাইজ করা

মঞ্চের মধ্যে, চূড়ান্ত দৃশ্যে সাতটি উপাদান রয়েছে। পিছন থেকে সামনের দিকে যাওয়া, তারা আকাশের পটভূমি, একটি কুয়াশার স্তর, দরজা, জল, প্রতিফলন, একটি অতিরিক্ত কুয়াশার স্তর এবং অবশেষে সামনের ক্লিফগুলি অন্তর্ভুক্ত করে। প্রতিটি আইটেম একটি transform: translate3d(x, y, z) CSS বৈশিষ্ট্য যা নির্দেশ করে যে এটি 3D স্পেসে কোথায় ফিট করে। আমরা z মানটি একইভাবে ব্যবহার করেছি যেভাবে আমরা z-index ব্যবহার করব, কিন্তু translate3d বৈশিষ্ট্যের সাথে, আমরা মান সহ একটি ইউনিটও প্রদান করতে পারি।

চিত্র 1: পাশ থেকে মঞ্চ
চিত্র 1: পাশ থেকে মঞ্চ।

চিত্র 1 দেখায় যে দৃশ্যটি জুম করা হয়েছে এবং প্রায় 90 ডিগ্রি ঘোরানো হয়েছে যাতে আপনি স্টেজের মধ্যে প্রতিটি সেট পিস যেভাবে স্থাপন করা হয় তা কল্পনা করতে পারেন। পিছনে (বাম থেকে সবচেয়ে দূরে), আপনি পটভূমি, কুয়াশা, দরজা, জল এবং অবশেষে পাহাড় দেখতে পারেন।

মঞ্চে পটভূমি স্থাপন

ব্যাকগ্রাউন্ড ইমেজ দিয়ে শুরু করা যাক। যেহেতু এটি সবচেয়ে দূরে, তাই আমরা Z-অক্ষে একটি -990px ​​ট্রান্সফর্ম প্রয়োগ করেছি যাতে এটিকে আমাদের দৃষ্টিভঙ্গিতে ফিরিয়ে দেওয়া যায় (চিত্র 2 দেখুন)।

স্টেজ, শুধুমাত্র ব্যাকগ্রাউন্ড -990px ​​এ রাখা হয়েছে
চিত্র 2: মঞ্চ, শুধুমাত্র পটভূমি -990px ​​এ রাখা হয়েছে

এটি মহাকাশে ফিরে যাওয়ার সাথে সাথে, পদার্থবিদ্যা দাবি করে যে এটি ছোট হয়ে যায়, তাই ভিউপোর্টের সাথে মানানসই করার জন্য এটিকে একটি scale(3.3) বৈশিষ্ট্যের মাধ্যমে পুনরায় আকার দিতে হবে এবং y-অক্ষে একটি translate3d দিয়ে ভিউপোর্টের উপরের প্রান্তের সাথে সারিবদ্ধ করতে হবে। (চিত্র 3 দেখুন)।

.background {
width: 1280px;
height: 800px;
top: 0px;
background-image: url(stars.png);
{ % mixin transform: translate3d(0, 786px, <b>-990px</b>) <b>scale(3.3)</b>; % }
}
চিত্র 3: মঞ্চ, পটভূমিতে অবস্থান এবং স্কেল করা।
চিত্র 3: মঞ্চ, শুধুমাত্র পটভূমি অবস্থান এবং স্কেল সহ।

কুয়াশা, দরজা এবং ক্লিফ একইভাবে, প্রতিটি একটি উপযুক্ত z অবস্থান এবং স্কেল ফ্যাক্টর সহ একটি translate3d প্রয়োগ করে (চিত্র 4 দেখুন)। দরজার পিছনে এবং পাহাড়ের পিছনে কুয়াশা কিভাবে স্তুপীকৃত হয় তা লক্ষ্য করুন।

চিত্র 4: কুয়াশা সহ মঞ্চ, দরজা এবং ক্লিফ অবস্থান এবং মাপযুক্ত
চিত্র 4: কুয়াশা সহ মঞ্চ, দরজা এবং ক্লিফ অবস্থান এবং মাপযুক্ত।

সাগর যোগ করা

যতটা সম্ভব বাস্তবসম্মত পরিবেশ তৈরি করার জন্য, আমরা জানতাম যে আমরা কেবল একটি উল্লম্ব সমতলে জল রাখতে পারি না, এটি সাধারণত বাস্তব জগতে সেভাবে বিদ্যমান নেই। মঞ্চে জলের অবস্থানের জন্য translate3d প্রয়োগ করার পাশাপাশি, আমরা এটিকে সমতল এবং টেক্সচার দেখাতে 60 ডিগ্রি ( rotateX(60deg) ) এর একটি x-অক্ষ (অনুভূমিক) ঘূর্ণনও প্রয়োগ করি। দরজার প্রতিফলন এবং গৌণ কুয়াশাকে সঠিক সমতলে উপস্থিত করার জন্য অনুরূপ ঘূর্ণন যোগ করা হয়েছিল (চিত্র 5 দেখুন)।

.sea {
bottom: 120px;
background-image: url(sea2.png);
width: 1280px;
height: 283px;
{ % mixin transform: translate3d(-100px, 225px, -30px) scale(2.3) <b>rotateX(60deg)</b>; % }
}
চিত্র 5: মঞ্চ, সবকিছুর অবস্থান এবং স্কেল সহ।
চিত্র 5: মঞ্চ, সবকিছুর অবস্থান এবং স্কেল সহ।
>

প্রতিটি দৃশ্য একইভাবে নির্মিত হয়েছিল, উপাদানগুলিকে একটি মঞ্চের 3D স্থানের মধ্যে কল্পনা করা হয়েছিল এবং প্রতিটিতে একটি উপযুক্ত রূপান্তর প্রয়োগ করা হয়েছিল।

আরও পড়া