---
# System prepended metadata

title: CGAP Homework 01
tags: [CGAP]

---

# CGAP Homework 01

**學號：E94071089**
**姓名：羅靖皓**
**系級：資訊111**

## System

* OS: Ubuntu
* kernel version: 5.8.0-44-generic


## Hardware

```
架構：                         x86_64
CPU 作業模式：                  32-bit, 64-bit
Byte Order:                   Little Endian
Address sizes:                39 bits physical, 48 bits virtual
CPU(s):                       8
On-line CPU(s) list:          0-7
每核心執行緒數：                 2
每通訊端核心數：                 4
Model name:                   Intel(R) Core(TM) i5-8300H CPU @ 2.30GHz
```

## Compiler

```
Thread model: posix
gcc version 9.3.0 (Ubuntu 9.3.0-17ubuntu1~20.04) 
```

## Prerequisites

* `glfw-3.3`
* `xorg-dev`
* `libglu1-mesa-dev`
* `glm` (install by package manager, not in thirdparty folder)


## Instruction

There are three approach to test the program:

1. Run the executable file in folder directly
    * Run
    
        ```shell
        ./build/main "resources/model/Utah_teapot_(solid)_texture.obj" \
               "resources/texture/uv.png"                              \
               "src/Shader/BasicVertexShader.vs.glsl"                  \
               "src/Shader/BasicFragmentShader.fs.glsl"
        ```
    
2. Compile and run, and also input test command line argument
    * Compile & Run
    
        ```shell
        make test
        ```
        
3. Compile from source code and run the program
    * Compile
    
        ```shell
        make
        ```
    * Run

        ```shell
        ./build/main [model name] [texture name] [vertex shader file name] [fragment shader file name]
        ```

    * Clean

        ```shell
        make clean
        ```
        
:::info
please run these command in the folder that store Makefile.
:::


## What I do

* Modify the sample code, fill the blank code with OpenGL function
* Write Makefile

## Result

![](https://i.imgur.com/bFH6HY6.png)

Show the model and texture correctly.

###### tags: `CGAP`