LAB FAQ


Overview

The lab machines have the latest version of Windows 10.

Please note that c:/ drive is a very fast SSD hard drive with all the software you need installed. Please keep all data that you need for your projects and classes on the second d:/ or e:/ drive.

We do not want to run out of room on c:/ as the software takes up a lot of space.

Remember to login with your LSU Credentials, your CCT password does not work. Login using the regular microsoft login and your user name WITHOUT @lsu.edu.\n\nPlease remember to back up and remove all software from All the internal drives as they will get wiped for complete re-imaging when we update all the software. Box is a good place to store all of your files when you are on break.

windows 10 user login screen

  • Adobe After Effects 22.11
  • Adobe Animate 22.0.2
  • Adobe Audition 22.11
  • Adobe Illustrator 26.0.2
  • Adobe Photoshop 23.1
  • Adobe Premiere Pro 22.1.2
  • Adobe Substance Designer 11.3.1
  • Adobe Substance Painter 7.4.1
  • Adobe Substance 3D Stager 1.1.1
  • Adobe Substance 3D Sampler 3.1.2
  • Adobe XD 45.1.62
  • Autodesk Maya to Arnold 5.0.0.2
  • Autodesk Maya 2022_3_ML
  • Box for file access
  • Epic Unreal 5.0.3
  • Git 2.34.1-64-bit (with Bash)
  • Google Chrome
  • Firefox
  • Keyshot 9.3.14
  • Marmoset Toolbag 4.036
  • Microsoft VS Code 1.70.0
  • Microsoft Visual Studio 2019
  • Pixelogic Zbrush 2021.6.4
  • SideFX Houdini 19.5.xxx
  • Steam, Vive & Oculus drivers
  • Unity 2022.1.11
  • YoyoGames GameMaker 2022.6.0.23

Virtual Reality Settings

We have one lab account that can be used with the Oculus Rift in the Oculus store and Vive with Steam. For login information go to dmae github link

Accessing Software Offsite or on Personal Equipment

All software in the lab except for Adobe products can be installed and accessed off campus. For software that requires a license server you will need to be on campus within the intranet or access it outside of campus through Global Protect VPN.

A full description of the process is available in the links below. For Adobe products consider purchasing a student license for the duration of the studies if you find that you need it outside of the lab.

Accessing Lab Software

  1. All software can be installed on personal computers except for Adobe Creative Cloud. Adobe applications are ONLY available in the lab.

  2. Installation information for either the PC or Mac version of all other software can be found at the dmae github link. Please note that this is a private GitHub repository so you have to be logged in for the link to work. It will look like a bad link and you will get a 404 website not found error.

  3. You also need to be a team member to gain access. If you are logged in and the link still doesn't work, email maubanel@cct.lsu.edu and include your GitHub username.

Accessing Box for File Storage

To store large files it is best to use Box at LSU. You can access it from the lab and at home and allows for offline or only online storage. If you cannot log into LSU Box with your LSU credentials, get a free account online at box.com.

If you want to use box without the browser you can download their app for windows or mac at on box.com.

Online Learning

We have access to Pluralsite and Gnomon for their amazing tutorials. Login information can be found at dmae github link.

We also have access to professional music and sound effects from alibi which includes multi-tracks! This can also be found at dmae github link.

If you don't have access to this link then request permission by emailing Marc Aubanel at maubanel@cct.lsu.edu.\n

Internship & Jobs

  • Some kind person is keeping up a Jobs & Intership with a tab for Openings, Internships, Studios, Websites and Schoolss. This is an excellent starting point.

  • I also keep a list of all Louisiana Companies that are interested in hiring students for regular jobs and potentially internships. This is a private repository contact Marc Aubanel for access.

  • There are also occasional posts in DMAE News for positions so check back often.

Email Etiquette

  1. Only discuss public matters. There is no such thing as privacy in an email.

  2. Don't 'email angry'. Email is not an effective forum for venting and is much better at summarizing. If an issue has arisen that causes anger, either meet in person or talk on the phone.

  3. Respond in a timely fashion. If you are not able to respond right away, please respond with a receipt and a timeframe of when you will respond. Not responding witin 24 - 48 hours is not acceptable.

  4. Refrain from sending one-liners. You can put No Reply Necessary at the top of an email if you don't expect a response.

  5. Avoid using shortcuts, emoticons, jargon or slang.

  6. Keep it professional. Imagine your grandmother is being CC'd on the email.

  7. Be clear in your subject line.

  8. Don't email more than one address per receipient. If you don't know which they prefer, then ask.

  9. Keep it short and get to the point.

  10. Remember, the email you write is a reflection of you.

Lab Etiquette

  1. The DMAE lab has a capacity of 11 people.

  2. Make sure faculty television is turned off if you are the last person to leave the lab.

  3. Make sure the door is locked if you are the last person to leave the lab. The door is locked by the switch on the latch assembly on the side of the door.

  4. Please try and eat in the cafeteria area just outside the second floor staircase. If you absolutely have to eat in the lab because class is starting please dispose of your food garbage in the cafeteria area. We don't want the lab to smell like food or attract critters.

  5. Log off of your computer and make sure that it goes into sleep mode. Please do not disable the sleep functions of the computer.

Which One to Use?

Students have access to using GitHub or with GitLab.

GitLab

GitLab is hosted on LSU servers and uses Git at its core. The advantage of GitLab is that we can configure the repository in any way we like. We can also control size limits for files that we cannot control with GitHub. But, we do have to maintain it ourselves and there may be fewer gui tools to use with it (I have had varying success using GitHub Desktop in the past). Our implementation is set to go with LFS.


git.cct.lsu.edu website


GitHub

GitHub uses Git at its core and is effectively the same as GitLab. It has its own implementation of lots of tool support and documentation. We do get free LFS support if you launch the project through our GitHub Classroom. Do not start a new project with your own account as there is a limit to where they will charge for further usage (for a 3-D video game project this is suprisingly quick). There are some total project and file maximum sizes that we cannot control. If your project is north of 6 gigs I would consider using GitLab.


github.com website

Git LFS

When making a project using large files like 3-D textures, 3-d models, audio samples, videos, large photos or any other large assets it is necessary to use Git LFS. LFS stands for Large File System.

Why do we need Git LFS? In the default use of Git the entire history is stored locally in the .git folder in your main project folder. This makes switching branches really fast as it doesn't need to go to the server to download different versions of files. The problem comes for large files.

Lets say we have a model we are working on and its textures are uncompressed 4K .png files. They total to 100 mb each. Every time you upload a new version of them they are save to your project history in the .git folder. So lets say you have iterated on these 20 times during development. Well now we are talking about 2 gigs of total files that are stored locally. The slows down the entire team's push and pulls and makes cloning new projects arduously long.

LFS allows you to indicate which files we want to use the large file system with and those files only store the latest version locally and the history is stored on the server and you can still recover by downloading them at any time.

Tips

  • Run git lfs prune occasionally to remove old stale files from your local repository. Git LFS does not do its own garbage collection.

  • Ensure that the entire team has Git LFS installed. You will get unexpected behavior if you do not.

  • Use text based alternative to binaries where possible. Maya allows you to save as ascii or binary. For version control ascii text is always preferable as the system will only store the two text differences (say one point in a million polygon model). If you store a binary the entire file needs to be stored as you cannot save the difference between two binaries.

  • Come up with a folder stucture and naming convention and try not to change the name during the lifetime of the project of the file. Do not manually number files like image-01.png and then the next time you update it you call it image-02.png. This will defeat the purpose of using git (it stores all versions of the files) and will render the LFS meaningless.

  • You can pinpoint which filetypes you want to include or just target the entire Content folder.

Git Ignore File

The .gitignore file lies in your root folder in the same directory as your .uproject file. If you do not locate it in this folder it will not point to the correct directories.

I recommend you use the ue4 .gitgonre hosted on GitHub. If you use the one generated by the UE4 Engine it is missing the build data for maps (which are generated and VERY LARGE) *_BuiltData.uasset files. It is important that it includes all files that are built locally for your operating system and GPU. This indicates all the files that will not go to version control that get built locally dynamically anytime the file is missing. Without a properly configured .gitignore your project size will grow out of control within a few commits and pushes.

Working Files

Working files used on the project such as .maya, that are used to create objects but don't get ingested into the game engine - as you would export from that file a .fbx. These should not be stored in Git even using LFS as it will balloon project size and collaboration isn't always necessary. For safety store them on Box so that you have a backup in case your hard drive corrupts or the data is locally inaccessible.

Git Lab

  1. CCT has a private GIT repository. I suggest you get comfortable using command line with GIT. The advantages far outweigh the disadvantages and it is worth learning. You do not need to use the Global Protect VPN to access Git off campus and can access it from anywhere with an internet connection with a valid SSH key. On the mac you can use Terminal and on the PC you need to download *Git and make sure you install Git Bash with the standard install.

  2. To use GitLab you need to email Marc Aubanel to gain login access to the repositories.

  3. Once you have a username and password login into GitLab.

  4. All traffic is governed using an SSH key. You need to generate an SSH key that that gets stored in a hidden folder on your hard drive. It will create a file in the root of your main user directory called .ssh. Any file that starts with a dot is hidden by default so I suggest making sure you turn on see hidden files and folders. This only works on a single computer and the key needs to be shared or a seperate key needs to be generated on each compuyter you use.

  5. On a Mac, go to Finder, choose Utilities from the Go menu. Find the Terminal application in the Utilities window. Double-click the Terminal application. Enter the following command:\n\nssh-keygen -t rsa\n. Press the ENTER key to accept the default location and name. Type in a passphrase, then enter a second time to confirm.

    On a PC, go to Git Bash (go to git and install git bash) or on a mac open up Terminal and enter:

  • ssh-keygen -t rsa. Press the Enter or Return key to accept the default location and name.
  • Type in a password, then enter a second time to confirm. Pleawse note that you will not have a cursor in when typing the password, this is normal. You can still use the Backspace key.
  • Copy and paste the entire contents of the id_rsa.pub key into https://git.cct.lsu.edu/-/profile/keys the Key box. It should look something like this:

gitlab ssh screen

  1. Press Add Key button and you should be set to go. You can access the CCT git repository at git.cct.lsu.edu.All the projects that you are a part of will be listed on the Front Page:

git.cct.lsu.edu website

Automate SSH Password Login

If you are tired of entering your SSH password everytime in Git Bash or GitHub if you are using ssh every time you pull or push the repository, you can set it up so it remembers the password until you log off or reboot.


PC

Open Git Bash and go to the directory with the repository you want to use. Type

eval `ssh-agent`

Then press enter key.


Mac

On a mac just open up Terminal. You do not need to enter the above command.


Final Setp on Mac & PC

The last step is to type:

ssh-add

Press Enter then enter your ssh password. Now you should not be prompted for your password until you log out or reboot your computer.

Line Endings

If you are working in a team that is using both mac and PC's, you will get a lot of git erros regarding line endings. PC's and mac's use different symbols to represent a new line.

Since Unix/Mac OSX and Windows have different line endings, it is good to make sure that the database doesn't update every time a different os is used. Git defaults to this being an unresolved conflict. For more detailed information go to github help.

You need to change the core.autocrlf = true on PC and core.autocrlf = input on unix/mac.

On Windows you need to enter:

git config --global core.autocrlf true

On Unix/Mac:

git config --global core.autocrlf input

Starting a Git Project

There are two ways of starting a new project on your computer. You will either clone an existing repository or create one from scratch.

Cloning

If the repository already exists you just need to clone it. Create a **GIT** repository you need to clone a git repository by cutting and paste project site from either [GitLab](http://git.cct.lsu.edu) or [GitHub](https://github.com )and replace above git@git.cct link with the one of the desired project. Please note that this will create a new directory with the one used for the project.

git clone git@git.cct.lsu.edu:maubanel/sample.lsu.edu.git

If you already have a folder for it you can create the project inside an empty folder of an eexisting directory using:

git clone git@git.cct.lsu.edu:maubanel/sample.lsu.edu.git .


gitlab repository url


github repository url

Creating a Project from Scratch

  1. Navigate in Terminal (mac) or Git Bash (pc) to the folder you want to hold the repository (the root folder). Type:
    git init.

  2. If you already have active project files make sure you include a .gitignore file and a .gitattributes file.

  3. Stage all active files (including the above .gitignore and .gitattributes):
    git add .

  4. Commit these stated files by typing:
    git -m "initial commit".

  5. Create a new branch:
    git branch -M main.

  6. Create a new project on a git repository. Copy and paste the directory.

  7. Attach the local database to the above remote:
    git remote add origin <github_repo_url>.git

  8. Type:
    git push -u origin main.

  9. Now you are all set to start developing.

Standard Git Workflow

Just note that git pull is a shortcut for git pull origin main and git push is a shortcut for git push origin main. The default name for <remote> is origin and is used that way in most projects. The default main branch is typically named main.

The first thing we should always do is get the latest information from the server to make sure that nothing that anyone else has worked on has affected our work:

  • git branch -b <working branch name>    When working in teams no one should be developing on the main branch but instead creating working branch names. When you are complete you create a merge request on the git website. The -b switches to the branch (the equivalent of git branch <branch name> & then git checkout <branch name>.

  • git pull <remote> <branch>     (shortcut for git fetch <remote> and git merge)

  • git add <filename> or git add . (. is wildcard for all unstaged files)

  • git commit -m "add message here of what was commited. Be specific."     (Detailed message of small atomic change)

  • git push <remote> <branch>    Updates the remote and branch on server

  • git push -u <remote> <branch>     Updates the remote and branch on server and sets this branch as the default upstream branch so future pushes only requires git push

  • Go to the repository website and create a merge request to merge your work back to the main branch

Branches

  • git branch     to view the current branch you are on

  • git branch -r     to view all branchs on server

  • git branch --all     list all branches locally and on remote server

  • git remote show <remote>     shows what branches your pull and push without remote and branch will default to

Rename Branch

  • git branch -m <new branch name>\n         (if on the branch you want to rename)
  • git branch -m <old branch name> <new branch name>         _(if you are on a different branch)

Delete Branch

git branch -d <branch name>         (only deletes branch if there is no work to stage, commit or push)

git branch -D <branch name>         (Deletes branch and throws away all the work)

git push <remote> --delete <branch>        Deletes branch on server

Get Branches from Server

  • git fetch <remote>     (< remote > defaults to origin)

Change Branch

  • git checkout <branch name>\n

Merge Branch

  • git merge <branch name> --no-ff     _(No fast-forward, preserves complete history)

Merge Conflicts

  • If it is a text file manually resolve the merge conflicts in a text editor

  • For binaries where you have to select the file that is on the server and replace the file on your machine
    git checkout --theirs <filename>     _(Take the server version (deletes local) of the file in the conflict if you cannot resolve with say a binary file for example)

  • For binaries where you select the file that is on your local machine and replaces the one on the server:
    git checkout --ours <filename>     (Take the local version (replaces server) of the file in the conflict if you cannot resolve with say a binary file for example)

Deleted Locally Changed on Server

  • git rm <filename>    to delete file both on server and locally

  • git checkout <filename>    to bring back deleted file from werver

Deleted on Server but Changed Locally

git add <filename> to add file back

Changes in Current Branch

  • git diff <filename>\n     _(if no filename all changes will be shown that are not staged)

  • git diff --patience <filename>     (--patience provides more readable diff but takes longer to render)

  • git diff --staged     (checks the differences in the staged area)

Ammend To a Commit

  • git commit --amend (ammends new staged files and creates new commit message)

  • \ngit commit --amend --no-edit     (amends staged files and uses same message as existing commit)

Delete Local Changes

Sometimes not all work is worth saving. You often try something out to decide that you do not want to pursue this task anymore.\nFor a single file or two you can just checkout from the previous commit. This is not saved or tracked so use sparingly. You will lose this work though and it won't be tracked. So say you want to revert to your last commit on file1.txt you would type: git checkout file1.txt . To do this accross multiple files you can use git checkout ..

git reset --hard to remove all work in commit locally

Undo Staged Files

git reset HEAD -- . _takes all files that were staged with git add and undoes the staging

Undo Last Local Commited File

git reset --soft HEAD~1

Remove Stray Files

If you want to clean up stray files that you don't want to add you can use. git clean -n to preview changes git clean -f to remove stray files

Deleting Large Files

  • git ls-files | xargs ls -l | sort -nrk5 | head -n 10 lists 10 larges files

  • Delete all files that are too large:
    git filter-branch --force --index-filter
    git rm --cached --ignore-unmatch path/to/filename.jpg --prune-empty --tag-name-filter cat -- --all

  • Do this for each file. The force a push: git push --force --all.

Clean up Files Added to .gitignore

  • If you make changes to .gitignore when the files have already pushed to the server. Update the .gitignore file and add and commit it to your project.

  • git rm -r --cached .

git add .

\ngit commit -m 'Fixed untracked files in .gitignore'

Tag a Commit

git tag <version/name of tag> ligth weight tag

git tag -a \"VERSION#/NAMEOFTAG\" -m \"ENTER MESSAGE\" _annotated tag_

git push --tags Push tag to remote repository

Location of <remote>

`git remote -v`

VI Editor

Sometimes when git merges, it ends up sending you to the VI editor to record a message. If so the commands are:

i         (to go into insert mode to edit text)

esc         (to leave insert mode, so you can save and exit)\

:x         _(to save and exit)

:q!        _(to exit and ignore changes)

Clear Text Editor Window

Alt + F8 (pc) or command k(mac)

Steps to Graduation

Read the Steps to Graduation to find out the list of items required from you. The deadline for the Master's Application For Degree is January 28th. The deadline for approval of the final exam is April 29th, 2021. You will need to put together a three person panel for the final exam. You can pick any of the faculty that you have worked with either directly or indirectly (as long as they know your work well). Typically the chair of the committee is Derick Ostrenko (as I am not able to chair the committee but can be one of the other two members). Please email maubanel@lsu.edu your committee member choices.

Master Application for Degree

Download the PDF from Enrolled Student Forms. Fill in the first page of this form. Included below is a template for what should appear in each section. Please make sure you use your lsu email address. Please submit this to the grad school before the deadline (email is indicated on the form).

The second page (if there is one), can be left blank.

master application for degree

Graduate School Forms

Graduate school forms can be found at: LSU Grad School Forms